# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1274953435 -10800 # Node ID 9ba4404ef423e6e28ef2c12b1c438c86ea9f4f78 # Parent 2dc6caa42ec3d6866b9ad226424ae3f6346e0613 Revision: 201019 Kit: 2010121 diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/emaildebug/inc/emailtrace.h --- a/emailservices/emaildebug/inc/emailtrace.h Fri May 14 15:41:10 2010 +0300 +++ b/emailservices/emaildebug/inc/emailtrace.h Thu May 27 12:43:55 2010 +0300 @@ -1,309 +1,190 @@ /* -* Copyright (c) 2009 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: Header file describing trace utilities for commonemail -* -*/ + * 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: + * + */ #ifndef EMAILTRACE_H #define EMAILTRACE_H -#include "emailtraceconfig.hrh" +#include +#include +#include -#ifdef TRACE_INTO_FILE -#include // RFileLogger -#else -#include // RDebug -#endif +/* + * The macros COMMENT_TRACES, ERROR_TRACES, and FUNCTION_TRACES control which + * trace messages are printed. The trace message logging is controlled with + * the LOG_TO_FILE macro, whereas the LOG_FILE macro defines which file is to + * be used in logging. The print_trace() helper function implements printing. + * If LOG_TO_FILE is zero or the LOG_FILE cannot be opened, the messages are + * printed to qDebug(). + */ +#if defined(DEBUG) || defined(_DEBUG) -/** -* Constants -*/ -#ifdef TRACE_INTO_FILE +#define COMMENT_TRACES 1 +#define ERROR_TRACES 1 +#define FUNCTION_TRACES 1 + +#if COMMENT_TRACES || ERROR_TRACES || FUNCTION_TRACES + +#define LOG_TO_FILE 0 +#define LOG_FILE "c:/logs/nmail_trace.log" - _LIT( KEmailDir, "email" ); - _LIT( KEmailTraceFile, "email.txt" ); +inline void print_trace(const QString& msg) +{ + QFile out(LOG_FILE); + if (LOG_TO_FILE && out.open(QIODevice::Append | QIODevice::Text)) { + QDebug(&out) << "[Nmail]" << msg; + out.putChar('\n'); + out.close(); + } else { + qDebug() << "[Nmail]" << msg; + } +} #endif -//----------------------------------------------------------------------------- -// Error trace macros -//----------------------------------------------------------------------------- -// -#ifdef ERROR_TRACE - - /** - * Error trace definitions. Does not automatically log the error code! - */ - #ifdef TRACE_INTO_FILE +#endif /* DEBUG */ - #define ERROR( aErr, aMsg )\ - {\ - if( aErr != KErrNone )\ - {\ - _LIT( KMsg, aMsg );\ - RFileLogger::Write( KEmailDir, KEmailTraceFile, EFileLoggingModeAppend, KMsg );\ - }\ - } - #define ERROR_1( aErr, aMsg, aP1 )\ - {\ - if( aErr != KErrNone )\ - {\ - _LIT( KMsg, aMsg );\ - RFileLogger::WriteFormat( KEmailDir, KEmailTraceFile, EFileLoggingModeAppend, KMsg, aP1 );\ - }\ - } - #define ERROR_2( aErr, aMsg, aP1, aP2 )\ - {\ - if( aErr != KErrNone )\ - {\ - _LIT( KMsg, aMsg );\ - RFileLogger::WriteFormat( KEmailDir, KEmailTraceFile, EFileLoggingModeAppend, KMsg, aP1, aP2 );\ - }\ - } - #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )\ - {\ - if( aErr != KErrNone )\ - {\ - _LIT( KMsg, aMsg );\ - RFileLogger::WriteFormat( KEmailDir, KEmailTraceFile, EFileLoggingModeAppend, KMsg, aP1, aP2, aP3 );\ - }\ - } - #define ERROR_GEN( aMsg ) ERROR( KErrGeneral, aMsg ) - #define ERROR_GEN_1( aMsg, aP1 ) ERROR_1( KErrGeneral, aMsg, aP1 ) - - #else//TRACE_INTO_FILE not defined +/* + * The function NM_COMMENT() prints a trace message. The INFO macros are + * provided for legacy compatibility. They are deprecated and should not be + * used. If sprintf() type of formatting is desired, consider using QString:: + * arg() or QTextStream. + */ +#if COMMENT_TRACES - #define ERROR( aErr, aMsg )\ - {\ - if( aErr != KErrNone )\ - {\ - _LIT( KMsg, aMsg ); RDebug::Print( KMsg );\ - }\ - } - #define ERROR_1( aErr, aMsg, aP1 )\ - {\ - if( aErr != KErrNone )\ - {\ - _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aP1 );\ - }\ - } - #define ERROR_2( aErr, aMsg, aP1, aP2 )\ - {\ - if( aErr != KErrNone )\ - {\ - _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aP1, aP2 );\ - }\ - } - #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )\ - {\ - if( aErr != KErrNone )\ - {\ - _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aP1, aP2, aP3 );\ - }\ - } - #define ERROR_GEN( aMsg ) ERROR( KErrGeneral, aMsg ) - #define ERROR_GEN_1( aMsg, aP1 ) ERROR_1( KErrGeneral, aMsg, aP1 ) - - #endif//TRACE_INTO_FILE - -#else//ERROR_TRACE not defined +inline void NM_COMMENT(const QString& msg) +{ + print_trace("COMMENT : " + msg); +} +#define INFO(msg) NM_COMMENT(msg) +#define INFO_1(msg,arg1)\ +do {\ + QString __msg;\ + __msg.sprintf(msg,arg1);\ + NM_COMMENT(__msg);\ +} while (0) +#define INFO_2(msg,arg1,arg2)\ +do {\ + QString __msg;\ + __msg.sprintf(msg,arg1,arg2);\ + NM_COMMENT(__msg);\ +} while (0) +#define INFO_3(msg,arg1,arg2,arg3)\ +do {\ + QString __msg;\ + __msg.sprintf(msg,arg1,arg2,arg3);\ + NM_COMMENT(__msg);\ +} while (0) - #define ERROR( aErr, aMsg ) - #define ERROR_1( aErr, aMsg, aP1 ) - #define ERROR_2( aErr, aMsg, aP1, aP2 ) - #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 ) - #define ERROR_GEN( aMsg ) - #define ERROR_GEN_1( aMsg, aP1 ) - -#endif//ERROR_TRACE +#else -//----------------------------------------------------------------------------- -// Info trace macros -//----------------------------------------------------------------------------- -// -#ifdef INFO_TRACE - - /** - * Info log message definitions. - */ - #ifdef TRACE_INTO_FILE +#define NM_COMMENT(msg) +#define INFO(msg) +#define INFO_1(msg,arg1) +#define INFO_2(msg,arg1,arg2) +#define INFO_3(msg,arg1,arg2,arg3) - #define INFO( aMsg )\ - {\ - _LIT( KMsg, aMsg );\ - RFileLogger::Write( KEmailDir, KEmailTraceFile, EFileLoggingModeAppend, KMsg );\ - } - #define INFO_1( aMsg, aP1 )\ - {\ - _LIT( KMsg, aMsg );\ - RFileLogger::WriteFormat( KEmailDir, KEmailTraceFile, EFileLoggingModeAppend, KMsg, aP1 );\ - } - #define INFO_2( aMsg, aP1, aP2 )\ - {\ - _LIT( KMsg, aMsg );\ - RFileLogger::WriteFormat( KEmailDir, KEmailTraceFile, EFileLoggingModeAppend, KMsg, aP1, aP2 );\ - } - #define INFO_3( aMsg, aP1, aP2, aP3 )\ - {\ - _LIT( KMsg, aMsg );\ - RFileLogger::WriteFormat( KEmailDir, KEmailTraceFile, EFileLoggingModeAppend, KMsg, aP1, aP2, aP3 );\ - } +#endif /* COMMENT_TRACES */ - #else//TRACE_INTO_FILE not defined +/* + * The function NM_ERROR() prints its second argument if the first argument + * is non-zero. The ERROR macros are provided for legacy compatibility. They + * are deprecated and should not be used. If sprintf() type of formatting is + * desired, consider using QString::arg() or QTextStream. + */ +#if ERROR_TRACES - #define INFO( aMsg )\ - {\ - _LIT( KMsg, aMsg ); RDebug::Print( KMsg );\ - } - #define INFO_1( aMsg, aP1 )\ - {\ - _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aP1 );\ - } - #define INFO_2( aMsg, aP1, aP2 )\ - {\ - _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aP1, aP2 );\ - } - #define INFO_3( aMsg, aP1, aP2, aP3 )\ - {\ - _LIT( KMsg, aMsg ); RDebug::Print( KMsg, aP1, aP2, aP3 );\ - } - - #endif//TRACE_INTO_FILE - -#else//INFO_TRACE not defined - - #define INFO( aMsg ) - #define INFO_1( aMsg, aP1 ) - #define INFO_2( aMsg, aP1, aP2 ) - #define INFO_3( aMsg, aP1, aP2, aP3 ) - -#endif//INFO_TRACE - -//----------------------------------------------------------------------------- -// Function trace macros -//----------------------------------------------------------------------------- -// -#ifdef FUNC_TRACE +inline void NM_ERROR(int err, const QString& msg) +{ + if (err) { + print_trace("ERROR : " + msg); + } +} +#define ERROR(err,msg) NM_ERROR(err,msg) +#define ERROR_1(err,msg,arg1)\ +do {\ + QString __msg;\ + __msg.sprintf(msg,arg1);\ + NM_ERROR(err,__msg);\ +} while (0) +#define ERROR_2(err,msg,arg1,arg2)\ +do {\ + QString __msg;\ + __msg.sprintf(msg,arg1,arg2);\ + NM_ERROR(err,__msg);\ +} while(0) +#define ERROR_3(err,msg,arg1,arg2,arg3)\ +do {\ + QString __msg;\ + __msg.sprintf(msg,arg1,srg2,arg3);\ + NM_ERROR(err,__msg);\ +} while(0) +#define ERROR_GEN(msg) ERROR(KErrGeneral,msg) +#define ERROR_GEN_1(msg,arg1) ERROR_1(KErrGeneral,msg,arg1) - // Constants - _LIT8( KEllipse, "(" ); - - /** - * Function logging definitions. - */ - #ifdef TRACE_INTO_FILE - - #define FUNC( aMsg, aP1 )\ - {\ - _LIT8( KMsg, aMsg ); RFileLogger::WriteFormat( KEmailDir, KEmailTraceFile, EFileLoggingModeAppend, KMsg, aP1 );\ - }\ - - #else//TRACE_INTO_FILE not defined +#else - #define FUNC( aMsg, aP1 )\ - {\ - RDebug::Printf( aMsg, aP1 );\ - }\ - - #endif//TRACE_INTO_FILE +#define NM_ERROR(err,msg) +#define ERROR(err,msg) +#define ERROR_1(err,msg,arg1) +#define ERROR_2(err,msg,arg1,arg2) +#define ERROR_3(err,msg,arg1,arg2,arg3) +#define ERROR_GEN(msg) +#define ERROR_GEN_1(msg,arg1) - /** - * Function trace helper class. - */ - class TFuncLog - { - public: - inline TFuncLog( const char* aFunc ): iFunc( (TUint8*)aFunc ) - { - TInt pos = iFunc.Find( KEllipse ); - if( pos != KErrNotFound ) - { - iFunc.Set( iFunc.Left( iFunc.Find( KEllipse ) ) ); - } - #ifdef TRACE_INTO_FILE +#endif /* ERROR_TRACES */ - //"CMAIL" string is added in the beginning of every trace - //line for filtering purposes - FUNC( "CMAIL %S <", &iFunc ); - - #else//TRACE_INTO_FILE notdefined - - FUNC( "CMAIL %s <", iFunc.Ptr() ); - - #endif//TRACE_INTO_FILE - } - inline ~TFuncLog() - { - #ifdef TRACE_INTO_FILE - - FUNC( "CMAIL %S >", &iFunc ); - - #else//TRACE_INTO_FILE not defined - - FUNC( "CMAIL %s >", iFunc.Ptr() ); - - #endif//TRACE_INTO_FILE - } - TPtrC8 iFunc; - }; - - #define FUNC_LOG TFuncLog _fl( __PRETTY_FUNCTION__ ); - -#else//FUNC_TRACE not defined - - #define FUNC_LOG - -#endif//FUNC_TRACE +/* + * The macro NM_FUNCTION, when used inside a function body, enables tracing + * for a function. Trace messages with labels ENTER and RETURN are printed + * when entering into and returning from a function, respectively. In case of + * an exception or a Symbian leave, a message with label UNWIND is printed + * (UNWIND stands for stack unwinding). The FUNC_LOG macro is provided for + * legacy compatibility. It is deprecated and should not be used. + */ +#if FUNCTION_TRACES -//----------------------------------------------------------------------------- -// Timestamp trace macros -//----------------------------------------------------------------------------- -// -#ifdef TIMESTAMP_TRACE - - #ifdef TRACE_INTO_FILE - - #define TIMESTAMP( aCaption )\ - {\ - TTime t;\ - t.HomeTime();\ - TDateTime dt = t.DateTime();\ - _LIT( KMsg, aCaption );\ - _LIT( KFormat, "[TIMESTAMP] %S %d:%02d:%02d.%d us");\ - RFileLogger::WriteFormat( KEmailDir, KEmailTraceFile, EFileLoggingModeAppend, KFormat,\ - &KMsg, dt.Hour(), dt.Minute(), dt.Second(), dt.MicroSecond() );\ - } - - #else//TRACE_INTO_FILE not defined +class __ftracer +{ +public: + __ftracer(const QString& _fn) + : fn(_fn) + { + print_trace("ENTER : " + fn); + } + ~__ftracer() + { + if (std::uncaught_exception()) { + print_trace("UNWIND : " + fn); + } else { + print_trace("RETURN : " + fn); + } + } +private: + QString fn; +}; - #define TIMESTAMP( aCaption )\ - {\ - TTime t;\ - t.HomeTime();\ - TDateTime dt = t.DateTime();\ - _LIT( KMsg, aCaption );\ - _LIT( KFormat, "[TIMESTAMP] %S %d:%02d:%02d.%d us");\ - RDebug::Print( KFormat,\ - &KMsg, dt.Hour(), dt.Minute(), dt.Second(), dt.MicroSecond() );\ - } +#define NM_FUNCTION __ftracer __ft(__PRETTY_FUNCTION__); +#define FUNC_LOG NM_FUNCTION + +#else - #endif//TRACE_INTO_FILE - -#else//TIMESTAMP_TRACE not defined +#define NM_FUNCTION +#define FUNC_LOG - #define TIMESTAMP( aCaption ) +#endif /* FUNCTION TRACES */ -#endif//TIMESTAMP_TRACE - -#endif // EMAILTRACE_H +#endif /* EMAILTRACE_H */ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/emaildebug/inc/emailtraceconfig.hrh --- a/emailservices/emaildebug/inc/emailtraceconfig.hrh Fri May 14 15:41:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* -* Copyright (c) 2009 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: Configuration header file for tracing utilities in commonemail -* -*/ - - -#ifndef EMAILTRACECONFIG_HRH -#define EMAILTRACECONFIG_HRH - -#ifndef __WINS__ -#ifdef _DEBUG -#define ENABLE_TRACES -#endif // _DEBUG -#endif // __WINS__ - -#ifdef ENABLE_TRACES -/** -* Trace definitions -*/ -// Error trace enabled -#define ERROR_TRACE - -// Info trace enabled -#define INFO_TRACE - -// Function trace enabled -#define FUNC_TRACE - -// Tracing into file enabled, default RDebug -#undef TRACE_INTO_FILE - -#endif // ENABLE_TRACES - -#endif // EMAILTRACECONFIG_HRH diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/emailserver/inc/fsmailserverconst.h --- a/emailservices/emailserver/inc/fsmailserverconst.h Fri May 14 15:41:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -/* -* Copyright (c) 2008 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: Constant definitions for FSMailServer -* -*/ - - -#ifndef FSMAILSERVERCONST_H_ -#define FSMAILSERVERCONST_H_ - -// -#include "fsmailserverconst.hrh" -// - -/////////////////////////////////////////////////////////////////////////// -// Different error notes that can be shown via this notifier -enum TFsEmailNotifierSystemMessageType - { - // Used to indicate that system message type is not set - // -> meant only for internal use - EFsEmailNotifErrUndefined = -1, - - EFsEmailNotifErrCustom = 0, - - // Error messages that doesn't require response - EFsEmailNotifErrAccountDisabled, - EFsEmailNotifErrPasswordExpired, - EFsEmailNotifErrDataDeleted, - EFsEmailNotifErrLoginUnsuccesfull, - EFsEmailNotifErrPasswordChanged, - EFsEmailNotifErrLoginCanceled, - EFsEmailNotifErrServerNotAvailable, - EFsEmailNotifErrNetworkNotAvailable, - EFsEmailNotifErrServerBusy, - EFsEmailNotifErrUnableToConnectToServerTryAgain, - EFsEmailNotifErrEmailAddrAndPwdDontMatch, - EFsEmailNotifErrInvalidEmailAddress, - EFsEmailNotifErrServerOffline, - EFsEmailNotifErrRoamingTurnedOn, - EFsEmailNotifErrRoamingCosts, - EFsEmailNotifErrUnableToComplete, - EFsEmailNotifErrConnectionError, - EFsEmailNotifErrUnableToConnect, - EFsEmailNotifErrMultipleSyncErrors, - EFsEmailNotifErrOutOfMemory, - EFsEmailNotifErrLoginFailed, - EFsEmailNotifErrServerNotFoundCheckSettings, - EFsEmailNotifErrUnableToConnectToServer, - EFsEmailNotifErrDisconnected, - EFsEmailNotifErrServerErroTryAgain, - - EFsEmailNotifErrLastNoResponse = 1000, - - // Error messages that do require response (which soft key pressed) - EFsEmailNotifErrCustomResponse, - EFsEmailNotifErrSynchronizationFailed, - - // Note! Not yet implemented as not currently needed. - // Value kept here as a placeholder for future needs. - EFsEmailNotifErrAuthenticatingWaitNote = 2000 - }; - -#endif /*FSMAILSERVERCONST_H_*/ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/emailserver/inc/fsmailserverconst.hrh --- a/emailservices/emailserver/inc/fsmailserverconst.hrh Fri May 14 15:41:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2008 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: Resource headers for project FSMailServer -* -*/ - - -#ifndef FSMAILSERVERCONST_HRH_ -#define FSMAILSERVERCONST_HRH_ - -#define KFsEmailNotifierMailboxNameMaxLength 50 -#define KFsEmailNotifierPasswordMaxLength 50 -#define KFsEmailNotifierCustomMessageMaxLength 200 - -#endif /*FSMAILSERVERCONST_HRH_*/ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/emailservermonitor/inc/emailshutdownconst.h --- a/emailservices/emailservermonitor/inc/emailshutdownconst.h Fri May 14 15:41:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 2009 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: -* Constant definitions for Email shutdown -* -*/ - -#ifndef EMAILSHUTDOWNCONST_H -#define EMAILSHUTDOWNCONST_H - -#include // TUid -#include "emailshutdownconst.hrh" // KEmailShutdownUidAsTInt - - -// Publish & Subscribe category for Email shutdown events -const TUid KEmailShutdownPsCategory = { KEmailShutdownUidAsTInt }; - -// Size of one item in platform API UID list (in Publish & Subscribe -// key EEmailPsKeyPlatformApiAppsToClose) -const TInt KEmailPlatformApiUidItemSize = sizeof( TInt32 ); - -// Publish & Subscribe keys used in shutdown process -enum TEmailShutdownPsKeys - { - // Publish & Subscribe key used in communication between Shutter - // application and installation initiators - EEmailPsKeyInstallationStatus = 1, - - // Publish & Subscribe keys for Email shutdown events - EEmailPsKeyShutdownClients, - EEmailPsKeyShutdownPlugins, - EEmailPsKeyShutdownMsgStore, - - // Publish & Subscribe keys to register 3rd party applications to be closed - EEmailPsKeyPlatformApiAppsToCloseLength, - EEmailPsKeyPlatformApiAppsToClose - }; - -// Publish & Subscribe values to be used with key EEmailPsKeyInstallationStatus -enum TEmailShutdownPsInstallationValues - { - // Value to be set by installation initiators when installation is starting - EEmailPsValueInstallationStarting = 1, - // Value to be set by Shutter when all services are shutdown - EEmailPsValueInstallationOkToStart, - // Value to be set by installation initiators when installation is started - // after EEmailPsValueInstallationOkToStart event received - EEmailPsValueInstallationStarted, - // Value to be set by Starter when installation has finished - EEmailPsValueInstallationFinished - }; - -// Executable name of the process that implements the shutdown functionality -_LIT( KEmailShutdownHandlerExe, "emailservermonitor.exe" ); - -// Command line arguments that can be given to shutdown handler process when -// starting it - -// KEmailShutdownHandlerArgOnlyShutter should be used when starting the process -// just before starting installation (if it wasn't already running) -_LIT( KEmailShutdownHandlerArgOnlyShutter, "OnlyShutter" ); - -// KEmailShutdownHandlerArgRestart should be given when restarting -// the process after installation -_LIT( KEmailShutdownHandlerArgRestart, "RestartAfterInstallation" ); - - -#endif // EMAILSHUTDOWNCONST_H diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/emailservermonitor/inc/emailshutdownconst.hrh --- a/emailservices/emailservermonitor/inc/emailshutdownconst.hrh Fri May 14 15:41:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* -* Copyright (c) 2009 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: -* Constant definitions for Cmail shutdown -* -*/ - -#ifndef EMAILSHUTDOWNCONST_HRH -#define EMAILSHUTDOWNCONST_HRH - - -// Publish & Subscribe category for Cmail shutdown events, needs to be the -// same as UID of the process that implements the shutdown functionality -#define KEmailShutdownUidAsTInt 0x20025FAD - -// Executable name of the process that implements the shutdown functionality -#define KEmailShutdownProcessExeName emailservermonitor.exe - - -#endif // EMAILSHUTDOWNCONST_HRH diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp --- a/emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp Thu May 27 12:43:55 2010 +0300 @@ -38,7 +38,7 @@ #include "ImsPointsecMonitor.h" #include "ImsPointsecObserver.h" #include "emailstorepskeys.h" // Support for on-the-fly upgrade -#include "emailshutdownconst.h" +// removing #include "emailshutdownconst.h" // // ========= @@ -318,19 +318,9 @@ // Support for on-the-fly upgrade // Watch for KProperty_EmailStore_Upgrade property. When set to our UID3/SECUREID, // then, this server should stop. - RProcess process; - CleanupClosePushL( process ); //+process - TSecurityPolicy readPolicy( ECapabilityReadDeviceData ); - TSecurityPolicy writePolicy( ECapabilityWriteDeviceData ); - iUpgradePropertyWatcher = CPSIntPropertyWatcher::NewL( this ); - iUpgradePropertyWatcher->StartL( KEmailShutdownPsCategory, - EEmailPsKeyShutdownMsgStore, - KEmailShutterPsValue, - /*ETrue*/EFalse, - readPolicy, - writePolicy ); - CleanupStack::PopAndDestroy(); //-process - + + // removed code to observe shutdown commands + __LOG_EXIT } // end ConstructL diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/nmailagent/inc/nmmailagent.h --- a/emailservices/nmailagent/inc/nmmailagent.h Fri May 14 15:41:10 2010 +0300 +++ b/emailservices/nmailagent/inc/nmmailagent.h Thu May 27 12:43:55 2010 +0300 @@ -72,10 +72,10 @@ NmSyncState state, const NmOperationCompletionEvent &event); - void handleConnectionEvent(NmConnectState state, const NmId mailboxId); + void handleConnectionEvent(NmConnectState state, const NmId mailboxId, int errorcode); void delayedStart(); - + void enableAlertTone(); private: @@ -104,12 +104,12 @@ bool active, bool refreshAlways); static QStringList pluginFolders(); - - bool getMessageUnreadInfo(const NmId &folderId, + + bool getMessageUnreadInfo(const NmId &folderId, const NmId &messageId, const NmId &mailboxId, bool &unreadMessage); - + void playAlertTone(); - + private: // data NmDataPluginFactory *mPluginFactory; diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/nmailagent/src/nmmailagent.cpp --- a/emailservices/nmailagent/src/nmmailagent.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailservices/nmailagent/src/nmmailagent.cpp Thu May 27 12:43:55 2010 +0300 @@ -95,8 +95,8 @@ this, SLOT(handleSyncStateEvent(NmSyncState, const NmOperationCompletionEvent&)), Qt::UniqueConnection); - connect(plugin, SIGNAL(connectionEvent(NmConnectState, const NmId)), - this, SLOT(handleConnectionEvent(NmConnectState, const NmId)), + connect(plugin, SIGNAL(connectionEvent(NmConnectState, const NmId, int)), + this, SLOT(handleConnectionEvent(NmConnectState, const NmId, int)), Qt::UniqueConnection); } } @@ -438,6 +438,8 @@ if (mailboxInfo->mOutboxFolderId == folderId) { // The first mail created in the outbox if (mailboxInfo->mOutboxMails <= 0) { + NMLOG("NmMailAgent: first mail in outbox"); + activate = true; updateNeeded = true; } mailboxInfo->mOutboxMails += messageIds.count(); @@ -483,6 +485,8 @@ // The last mail was now deleted if (mailboxInfo->mOutboxMails == 0) { + NMLOG("NmMailAgent: last mail deleted from outbox"); + // Keep it active if there is unread mails activate = mailboxInfo->mUnreadMailIdList.count() > 0; updateNeeded = true; @@ -550,9 +554,10 @@ Received from NmFrameworkAdapter connectionState signal \sa NmFrameworkAdapter */ -void NmMailAgent::handleConnectionEvent(NmConnectState state, const NmId mailboxId) +void NmMailAgent::handleConnectionEvent(NmConnectState state, const NmId mailboxId, int errorcode) { - NMLOG(QString("NmMailAgent::handleConnectionEvent %1 %2").arg(state).arg(mailboxId.id())); + Q_UNUSED(errorcode); + NMLOG(QString("NmMailAgent::handleConnectionEvent %1 %2 %3").arg(state).arg(mailboxId.id()).arg(errorcode)); NmMailboxInfo *mailboxInfo = getMailboxInfo(mailboxId); if (mailboxInfo) { // Connecting, Connected, Disconnecting, Disconnected @@ -627,15 +632,10 @@ // Get branded mailbox icon NmMailbox mailbox2( mailbox ); QString domainName = mailbox2.address().address(); - int delimIndex = domainName.indexOf('@'); - if( delimIndex >= 0 ) { - domainName = domainName.mid(delimIndex+1); - NMLOG(QString("Mailbox domain name: %1").arg(domainName)); - } EmailMailboxInfo emailMailboxInfo; mailboxInfo->mIconName = emailMailboxInfo.mailboxIcon(domainName); - + return mailboxInfo; } diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/nmailbase/inc/nmcommon.h --- a/emailservices/nmailbase/inc/nmcommon.h Fri May 14 15:41:10 2010 +0300 +++ b/emailservices/nmailbase/inc/nmcommon.h Thu May 27 12:43:55 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 - 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" @@ -52,7 +52,8 @@ { NmMessageCreated, NmMessageChanged, - NmMessageDeleted + NmMessageDeleted, + NmMessageFound // Search functionality related enumeration. }; Q_DECLARE_METATYPE(NmMessageEvent) diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/nmutilities/data/2001E277.txt Binary file emailservices/nmutilities/data/2001E277.txt has changed diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/nmutilities/data/icons/aol.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/data/icons/aol.svg Thu May 27 12:43:55 2010 +0300 @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/nmutilities/data/nmutilities.confml Binary file emailservices/nmutilities/data/nmutilities.confml has changed diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/nmutilities/inc/emailmailboxinfo_p.h --- a/emailservices/nmutilities/inc/emailmailboxinfo_p.h Fri May 14 15:41:10 2010 +0300 +++ b/emailservices/nmutilities/inc/emailmailboxinfo_p.h Thu May 27 12:43:55 2010 +0300 @@ -63,11 +63,6 @@ */ QString mTempIcon; QString mTempName; - - /*! - information about success or failure during resource file load - */ - bool mIsResourceLoaded; /*! Map of already imported branding keys diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/nmutilities/nmutilities.pro --- a/emailservices/nmutilities/nmutilities.pro Fri May 14 15:41:10 2010 +0300 +++ b/emailservices/nmutilities/nmutilities.pro Thu May 27 12:43:55 2010 +0300 @@ -26,7 +26,7 @@ MOBILITY += systeminfo INCLUDEPATH += inc \ - ../../../inc \ + ../../inc \ $$MW_LAYER_SYSTEMINCLUDE DEPENDPATH += src \ @@ -73,12 +73,28 @@ } #creating rcc file from qrc -system(rcc -binary data/email_brand.qrc -o data/email_brand.rcc) +#system(rcc -binary data/email_brand.qrc -o data/email_brand.rcc) +#RESOURCES += data/email_brand.qrc +#"data/email_brand.rcc /epoc32/data/Z/resource/apps/email_brand.rcc" \ # Build.inf rules BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " \ "rom/nmutilities.iby $$CORE_APP_LAYER_IBY_EXPORT_PATH(nmutilities.iby)" \ - "data/email_brand.rcc /epoc32/data/Z/resource/apps/email_brand.rcc" \ + "data/icons/gmail.svg /epoc32/release/winscw/udeb/z/resource/apps/gmail.svg" \ + "data/icons/gmail.svg /epoc32/release/winscw/urel/z/resource/apps/gmail.svg" \ + "data/icons/gmail.svg /epoc32/data/z/resource/apps/gmail.svg" \ + "data/icons/microsoft.svg /epoc32/release/winscw/udeb/z/resource/apps/microsoft.svg" \ + "data/icons/microsoft.svg /epoc32/release/winscw/urel/z/resource/apps/microsoft.svg" \ + "data/icons/microsoft.svg /epoc32/data/z/resource/apps/microsoft.svg" \ + "data/icons/ovi.svg /epoc32/release/winscw/udeb/z/resource/apps/ovi.svg" \ + "data/icons/ovi.svg /epoc32/release/winscw/urel/z/resource/apps/ovi.svg" \ + "data/icons/ovi.svg /epoc32/data/z/resource/apps/ovi.svg" \ + "data/icons/yahoo.svg /epoc32/release/winscw/udeb/z/resource/apps/yahoo.svg" \ + "data/icons/yahoo.svg /epoc32/release/winscw/urel/z/resource/apps/yahoo.svg" \ + "data/icons/yahoo.svg /epoc32/data/z/resource/apps/yahoo.svg" \ + "data/icons/aol.svg /epoc32/release/winscw/udeb/z/resource/apps/aol.svg" \ + "data/icons/aol.svg /epoc32/release/winscw/urel/z/resource/apps/aol.svg" \ + "data/icons/aol.svg /epoc32/data/z/resource/apps/aol.svg" \ "data/2001E277.txt /epoc32/release/winscw/udeb/z/private/10202be9/2001E277.txt" \ "data/2001E277.txt /epoc32/release/winscw/urel/z/private/10202be9/2001E277.txt" \ "data/2001E277.txt /epoc32/data/z/private/10202be9/2001E277.txt" \ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/nmutilities/rom/nmutilities.iby --- a/emailservices/nmutilities/rom/nmutilities.iby Fri May 14 15:41:10 2010 +0300 +++ b/emailservices/nmutilities/rom/nmutilities.iby Thu May 27 12:43:55 2010 +0300 @@ -20,5 +20,10 @@ #include file=ABI_DIR\BUILD_DIR\nmutilities.dll SHARED_LIB_DIR\nmutilities.dll PAGED +data=DATAZ_\APP_BITMAP_DIR\ovi.svg APP_BITMAP_DIR\ovi.svg +data=DATAZ_\APP_BITMAP_DIR\gmail.svg APP_BITMAP_DIR\gmail.svg +data=DATAZ_\APP_BITMAP_DIR\microsoft.svg APP_BITMAP_DIR\microsoft.svg +data=DATAZ_\APP_BITMAP_DIR\yahoo.svg APP_BITMAP_DIR\yahoo.svg +data=DATAZ_\APP_BITMAP_DIR\aol.svg APP_BITMAP_DIR\aol.svg #endif // __NMUTILITIES_IBY__ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailservices/nmutilities/src/emailmailboxinfo_p.cpp --- a/emailservices/nmutilities/src/emailmailboxinfo_p.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailservices/nmutilities/src/emailmailboxinfo_p.cpp Thu May 27 12:43:55 2010 +0300 @@ -44,21 +44,14 @@ private constructor */ EmailMailboxInfoPrivate::EmailMailboxInfoPrivate() : - QObject(NULL), - mIsResourceLoaded(false) + QObject(NULL) { XQSettingsManager manager; XQCentralRepositorySettingsKey rccKey(EMAIL_CENREP, RCC_PATH); XQCentralRepositorySettingsKey wlbKey(EMAIL_CENREP, WLB_BRAND_NAME); - mWlbDomainName = manager.readItemValue(wlbKey, XQSettingsManager::TypeString).value (); - - QString pathToRcc = - manager.readItemValue(rccKey, XQSettingsManager::TypeString).value (); - if (!mIsResourceLoaded) { - mIsResourceLoaded = QResource::registerResource(pathToRcc); - } + mWlbDomainName = manager.readItemValue(wlbKey, XQSettingsManager::TypeString).value (); } /*! private destructor @@ -131,6 +124,10 @@ QString domainName = ""; if (identifier.canConvert ()) { domainName = identifier.value (); + int delimIndex = domainName.lastIndexOf('@'); + if(delimIndex >= 0) { + domainName = domainName.mid(delimIndex + 1); + } } if (domainName.length() > 0){ @@ -198,13 +195,13 @@ if (regExp.exactMatch(brandingId)) { //match found = true; - icon = ":/" + cenRepRecord.at(3); + icon = "z:/resource/apps/" + cenRepRecord.at(3) + ".svg"; name = cenRepRecord.at(2); break; } } } - if (!found || !mIsResourceLoaded) { + if (!found ) { //get default icon and name icon = "qtg_large_email"; QStringList domain = brandingId.split("."); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/conf/nmeditorview.docml --- a/emailuis/nmailui/conf/nmeditorview.docml Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/conf/nmeditorview.docml Thu May 27 12:43:55 2010 +0300 @@ -6,48 +6,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + @@ -84,12 +52,11 @@ - + - - + @@ -125,7 +92,7 @@ - + diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/conf/nmmessagelistview.docml --- a/emailuis/nmailui/conf/nmmessagelistview.docml Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/conf/nmmessagelistview.docml Thu May 27 12:43:55 2010 +0300 @@ -21,15 +21,11 @@ - - - - - + + + + - - - @@ -43,10 +39,6 @@ - - - - diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/conf/nmmessagesearchlistview.docml --- a/emailuis/nmailui/conf/nmmessagesearchlistview.docml Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/conf/nmmessagesearchlistview.docml Thu May 27 12:43:55 2010 +0300 @@ -1,31 +1,22 @@ - + - - - - - - - + - - - + - - - + + @@ -33,9 +24,17 @@ - - - + + + + + + + + + + + @@ -46,17 +45,17 @@ - - - + + + - + - + diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmactionresponse.h --- a/emailuis/nmailui/inc/nmactionresponse.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmactionresponse.h Thu May 27 12:43:55 2010 +0300 @@ -44,7 +44,8 @@ NmActionResponseCommandRemoveAttachment, NmActionResponseCommandOpenAttachment, NmActionResponseCommandSearch, - NmActionResponseCommandSwitchFolder + NmActionResponseCommandSwitchFolder, + NmActionResponseCommandSettings }; diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmapplication.h --- a/emailuis/nmailui/inc/nmapplication.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmapplication.h Thu May 27 12:43:55 2010 +0300 @@ -53,6 +53,7 @@ public slots: + void prepareForPopView(); void popView(); void exitApplication(); void delayedExitApplication(); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmattachmentmanager.h --- a/emailuis/nmailui/inc/nmattachmentmanager.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmattachmentmanager.h Thu May 27 12:43:55 2010 +0300 @@ -26,6 +26,7 @@ class NmUiEngine; class NmOperation; class NmAttachmentFetchObserver; +class NmMessage; class NmAttachmentManager : public QObject { @@ -38,6 +39,15 @@ const NmId &folderId, const NmId &messageId, const NmId &messagePartId); + void fetchAttachments( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + QList &messagePartIds); + void fetchAllMessageParts( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId); bool isFetching() const; NmId partIdUnderFetch() const; int progressValue() const; @@ -48,11 +58,14 @@ private slots: void changeProgress(int value); void attachmentFetchCompleted(int result); + void messageFetched(int result); private: NmUiEngine &mUiEngine; QPointer mFetchOperation; // Not owned + QPointer mMsgFetchOperation; // Not owned NmAttachmentFetchObserver *mFetchObserver; // Not owned + NmMessage *fetchMsg; NmId mAttaId; int mProgressValue; bool mIsFetching; diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmbaseview.h --- a/emailuis/nmailui/inc/nmbaseview.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmbaseview.h Thu May 27 12:43:55 2010 +0300 @@ -35,11 +35,12 @@ Q_OBJECT public: NmBaseView(NmUiStartParam* startParam, + NmApplication &application, QGraphicsItem *parent = 0); virtual ~NmBaseView(); virtual void reloadViewContents(NmUiStartParam* startParam) = 0; virtual NmUiViewId nmailViewId() const = 0; - virtual bool okToExitView(); + virtual void okToExitView(); virtual void aboutToExitView(); virtual void viewReady(); virtual void handleMouseReleaseEvent(QGraphicsSceneMouseEvent *event); @@ -54,7 +55,8 @@ virtual void loadViewLayout() = 0; protected: - NmUiStartParam* mStartParam; // Owned + NmUiStartParam *mStartParam; // Owned + NmApplication &mApplication; }; diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmeditorheader.h --- a/emailuis/nmailui/inc/nmeditorheader.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmeditorheader.h Thu May 27 12:43:55 2010 +0300 @@ -24,7 +24,6 @@ enum { EEditorToLine=0, - EEditorGroupBoxRecipient, EEditorCcLine, EEditorBccLine, EEditorSubjectLine, @@ -48,13 +47,12 @@ NmEditorHeader(HbDocumentLoader *documentLoader, QGraphicsItem *parent=0); virtual ~NmEditorHeader(); int headerHeight() const; - NmHtmlLineEdit* subjectField() const; - NmRecipientLineEdit* toField() const; - NmRecipientLineEdit* ccField() const; - NmRecipientLineEdit* bccField() const; + NmHtmlLineEdit* subjectEdit() const; + NmRecipientLineEdit* toEdit() const; + NmRecipientLineEdit* ccEdit() const; + NmRecipientLineEdit* bccEdit() const; void setPriority(NmMessagePriority priority=NmMessagePriorityNormal); void setPriority(NmActionResponseCommand prio=NmActionResponseCommandNone); - void setGroupBoxCollapsed( bool collapsed ); void addAttachment(const QString &fileName, const QString &fileSize, const NmId &nmid); void removeAttachment(const QString &fileName); void removeAttachment(const NmId &nmid); @@ -64,12 +62,13 @@ const NmId &msgPartId, const QString &fileSize, int result); + void setFieldVisibility(bool isVisible); private: void loadWidgets(); void rescaleHeader(); void createConnections(); - HbWidget* createRecipientGroupBoxContentWidget(); + void adjustFieldSizeValues( NmRecipientLineEdit *widget, qreal height ); signals: void headerHeightChanged(int); @@ -77,34 +76,30 @@ void attachmentLongPressed(NmId attachmentPartId, QPointF point); public slots: + void fixHeaderFieldHeights(); void sendHeaderHeightChanged(); void editorContentChanged(); - void groupBoxExpandCollapse(); void attachmentActivated(int arrayIndex); void attachmentLongPressed(int arrayIndex, QPointF point); private: HbDocumentLoader* mDocumentLoader; // Not owned + HbWidget *mHeader; // Not owned int mHeaderHeight; HbLabel *mSubjectLabel; HbLabel *mPriorityIconLabel; bool mIconVisible; NmRecipientLineEdit *mToEdit; + NmRecipientLineEdit *mCcEdit; + NmRecipientLineEdit *mBccEdit; NmHtmlLineEdit *mSubjectEdit; bool mRecipientFieldsEmpty; - - // Recipient GroupBox related - HbGroupBox *mGroupBoxRecipient; // Owned - HbWidget *mGroupBoxRecipientContent; // Not owned - QGraphicsLinearLayout *mGbVerticalLayout;// Not owned - QGraphicsLinearLayout *mCcFieldLayout; // Not owned - QGraphicsLinearLayout *mBccFieldLayout; // Not owned - - NmRecipientField *mToField; // owned - NmRecipientField *mCcField; // Not owned - NmRecipientField *mBccField; // Not owned - + QGraphicsLinearLayout *mLayout; NmAttachmentList *mAttachmentList; + NmRecipientField *mToField; // Owned + NmRecipientField *mCcField; // Owned + NmRecipientField *mBccField; // Owned + bool mCcBccFieldVisible; }; #endif /* NMEDITORHEADER_H_ */ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmeditorview.h --- a/emailuis/nmailui/inc/nmeditorview.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmeditorview.h Thu May 27 12:43:55 2010 +0300 @@ -43,7 +43,7 @@ class NmAddAttachmentsOperation; class NmCheckOutboxOperation; class NmAttachmentPicker; - +class HbMessageBox; class NmEditorView : public NmBaseView, public NmActionObserver { @@ -63,7 +63,7 @@ void reloadViewContents(NmUiStartParam* startParam); NmUiViewId nmailViewId() const; HbWidget* scrollAreaContents(); - bool okToExitView(); + void okToExitView(); void aboutToExitView(); void viewReady(); @@ -73,7 +73,8 @@ void createOptionsMenu(); void setButtonsDimming(bool enabled); void attachmentLongPressed(NmId attachmentPartId, QPointF point); - + void invalidAddressQuery(HbAction* action); + void okToExitQuery(HbAction* action); public: // From NmActionObserver @@ -95,6 +96,7 @@ void handleSendOperationCompleted(); void openAttachmentTriggered(); void onAttachmentReqCompleted(const QVariant &value); + void switchCcBccFieldVisibility(); private: @@ -103,6 +105,7 @@ void setMessageData(); void startMessageCreation(NmUiEditorStartMode startMode); void startSending(); + void finalizeSending(); void createToolBar(); QPointF viewCoordinateToEditCoordinate(QPointF orgPoint); void updateMessageWithEditorContents(); @@ -122,8 +125,6 @@ void sendMouseReleaseEventToScroll(QGraphicsSceneMouseEvent *event); void sendMouseMoveEventToScroll(QGraphicsSceneMouseEvent *event); void sendLongPressGesture(const QPointF &point); - void contextButton(NmActionResponse &result); - private: // Data @@ -136,6 +137,7 @@ NmEditorTextEdit *mEditWidget; // Not owned NmEditorHeader *mHeaderWidget; // Not owned NmMessage *mMessage; // Owned + QGraphicsLinearLayout *mLayout; NmEditorContent *mContentWidget; // Owned HbMenu *mPrioritySubMenu; // Owned HbMenu *mAttachmentListContextMenu; // Owned @@ -146,9 +148,10 @@ QPointer mRemoveAttachmentOperation; // Not owned QPointer mCheckOutboxOperation; // Not owned - HbProgressDialog *mWaitDialog; // Owned. - - NmAttachmentPicker* mAttachmentPicker; // Owned + HbProgressDialog *mWaitDialog; // Owned. + HbMessageBox* mQueryDialog; // Owned + NmAttachmentPicker* mAttachmentPicker; // Owned + bool mCcBccFieldVisible; }; diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmmailboxlistview.h --- a/emailuis/nmailui/inc/nmmailboxlistview.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmmailboxlistview.h Thu May 27 12:43:55 2010 +0300 @@ -55,8 +55,6 @@ public slots: void itemActivated(const QModelIndex &index); void openSelectedMailBox(); - void showItemContextMenu(HbAbstractViewItem *item, const QPointF &coords); - void contextButton(NmActionResponse &result); private slots: void refreshList(); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmmessagelistview.h --- a/emailuis/nmailui/inc/nmmessagelistview.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmmessagelistview.h Thu May 27 12:43:55 2010 +0300 @@ -35,6 +35,7 @@ class NmActionResponse; class NmMessageListModelItem; class HbIconItem; +class HbGroupBox; class NmMessageListView : public NmBaseView, public NmActionObserver { @@ -51,6 +52,8 @@ ~NmMessageListView(); NmUiViewId nmailViewId() const; void viewReady(); + NmFolderType folderType(); + void okToExitView(); public: // From NmActionObserver void handleActionCommand(NmActionResponse &menuResponse); @@ -58,7 +61,6 @@ public slots: void reloadViewContents(NmUiStartParam *startParam); void refreshList(); - void contextButton(NmActionResponse &result); private slots: void showItemContextMenu(HbAbstractViewItem *index, const QPointF &coords); @@ -90,11 +92,12 @@ HbMenu *mItemContextMenu; // Owned NmMessageListModelItem *mLongPressedItem; // Not owned HbLabel *mNoMessagesLabel; // Not owned - HbLabel *mFolderLabel; // Not owned + HbGroupBox *mFolderLabel; // Not owned HbLabel *mSyncIcon; // Not owned QModelIndex mActivatedIndex; bool mViewReady; NmFolderType mCurrentFolderType; + bool mSettingsLaunched; }; #endif /* NMMESSAGELISTVIEW_H_ */ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmmessagelistviewitem.h --- a/emailuis/nmailui/inc/nmmessagelistviewitem.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmmessagelistviewitem.h Thu May 27 12:43:55 2010 +0300 @@ -53,6 +53,7 @@ void setFontsUnread(); void setFonts(const QColor &colorRole, HbFontSpec &spekki); void getFontSizes(); + QString senderFieldText(const NmMessageEnvelope &envelope); private: HbTextItem *mSender; // Owned diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmmessagesearchlistview.h --- a/emailuis/nmailui/inc/nmmessagesearchlistview.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmmessagesearchlistview.h Thu May 27 12:43:55 2010 +0300 @@ -32,8 +32,8 @@ class NmActionResponse; class NmApplication; +class NmMessageListModel; class NmMessageListModelItem; -class NmMessageSearchListModel; class NmUiEngine; class NmUiStartParam; @@ -47,7 +47,7 @@ NmMessageSearchListView(NmApplication &application, NmUiStartParam *startParam, NmUiEngine &uiEngine, - NmMessageSearchListModel &searchListModel, + NmMessageListModel &msglistModel, HbDocumentLoader *documentLoader, QGraphicsItem *parent = 0); ~NmMessageSearchListView(); @@ -85,11 +85,11 @@ public slots: void reloadViewContents(NmUiStartParam *startParam); - void contextButton(NmActionResponse &result); private slots: + void criteriaChanged(QString text); void showItemContextMenu(HbAbstractViewItem *index, const QPointF &coords); void itemActivated(const QModelIndex &index); void handleSelection(); @@ -98,19 +98,19 @@ void refreshList(); void toggleSearch(); void handleSearchComplete(); - void criteriaChanged(QString text); + private: // Data NmApplication &mApplication; NmUiEngine &mUiEngine; - NmMessageSearchListModel &mSearchListModel; + NmMessageListModel &mMsgListModel; HbDocumentLoader *mDocumentLoader; // Owned QObjectList mWidgetList; HbMenu *mItemContextMenu; // Owned HbTreeView *mMessageListWidget; // Not owned + HbLabel *mInfoLabel; // Not owned HbLabel *mNoMessagesLabel; // Not owned - HbLabel *mInfoLabel; // Not owned HbLineEdit *mLineEdit; // Not owned HbPushButton *mPushButton; // Not owned NmMessageListModelItem *mLongPressedItem; // Not owned diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmrecipientfield.h --- a/emailuis/nmailui/inc/nmrecipientfield.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmrecipientfield.h Thu May 27 12:43:55 2010 +0300 @@ -30,11 +30,6 @@ { Q_OBJECT public: - NmRecipientField( - HbLabel *label, - NmRecipientLineEdit *edit, - HbPushButton *button, - QGraphicsItem *parent = 0); NmRecipientField(const QString &labelString = "", QGraphicsItem *parent = 0); virtual ~NmRecipientField(); qreal height(); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmuiheaders.h --- a/emailuis/nmailui/inc/nmuiheaders.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmuiheaders.h Thu May 27 12:43:55 2010 +0300 @@ -106,7 +106,6 @@ #include #include #include -#include #include #include #include diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmuiviewids.h --- a/emailuis/nmailui/inc/nmuiviewids.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmuiviewids.h Thu May 27 12:43:55 2010 +0300 @@ -185,6 +185,16 @@ { mMailboxId = mailboxId; } + + inline void setFolderId(NmId folderId) + { + mFolderId = folderId; + } + + inline void setMessageId(NmId messageId) + { + mMessageId = messageId; + } private: // Data diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmutilities.h --- a/emailuis/nmailui/inc/nmutilities.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmutilities.h Thu May 27 12:43:55 2010 +0300 @@ -27,6 +27,7 @@ class QFile; class XQSharableFile; class NmOperationCompletionEvent; +class HbMessageBox; /*! UI utilities class @@ -63,7 +64,9 @@ static void displayErrorNote(QString noteText); - static bool displayQuestionNote(QString noteText); + static HbMessageBox* displayQuestionNote(QString noteText, + QObject* receiver = 0, + const char* member = 0); static void displayWarningNote(QString noteText); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/inc/nmviewerview.h --- a/emailuis/nmailui/inc/nmviewerview.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/inc/nmviewerview.h Thu May 27 12:43:55 2010 +0300 @@ -135,8 +135,6 @@ NmAttachmentListWidget *mAttaWidget; // Not owned bool mViewReady; bool mWaitNoteCancelled; - HbAction* mOkAction; //owned - HbAction* mCancelAction; //owned }; #endif /* NMVIEWERVIEW_H_ */ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmapplication.cpp --- a/emailuis/nmailui/src/nmapplication.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmapplication.cpp Thu May 27 12:43:55 2010 +0300 @@ -122,11 +122,6 @@ #ifndef NM_WINS_ENV bool service = XQServiceUtil::isService(); - if (service && !XQServiceUtil::isEmbedded()) { - // If started as service, keep it hidden until everything is initialised - // In embedded mode, the client app should not get hidden - XQServiceUtil::toBackground(true); - } #else bool service = false; #endif @@ -150,12 +145,16 @@ // Create view stack mViewStack = new QStack; - // Create back action and connect it to popView() + // Create back action and connect it to prepareForPopView() if (mMainWindow) { mBackAction = new HbAction(Hb::BackNaviAction,this); - connect(mBackAction, SIGNAL(triggered()), this, SLOT(popView())); + connect(mBackAction, SIGNAL(triggered()), this, SLOT(prepareForPopView())); + // Show mainwindow - mMainWindow->show(); + // Services will active it when the view is ready + if (!service) { + mMainWindow->show(); + } } // async operation completion related notifications @@ -264,6 +263,26 @@ } /*! + Ask from view that is it ok to pop view. This kind of 2-phase popView is needed + because view may show query dialog for user response. + */ +void NmApplication::prepareForPopView() +{ + if (mViewStack->size() > 0) { + // Get view pointer + NmBaseView *view = mViewStack->top(); + + // View will call/signal popView if exitting is ok. + view->okToExitView(); + } + // If the view stack is now empty quit the app + // This happens also when the app has been started as a service + else if (mViewStack->size() == 0) { + exitApplication(); + } +} + +/*! Pop view from view stack. View object is deleted. */ void NmApplication::popView() @@ -274,59 +293,57 @@ NmBaseView *view = mViewStack->top(); // ask view if it's ok to exit - if (view->okToExitView()) { - NmUiViewId topViewId = view->nmailViewId(); + NmUiViewId topViewId = view->nmailViewId(); - // Prepare for send animation if returing from editor and message has been sent. - if (topViewId == NmUiViewMessageEditor && mUiEngine->isSendingMessage()) { - mEffects->prepareEffect(NmUiEffects::NmEditorSendMessageAnimation); - } - mViewStack->pop(); - // Call custom exit function - view->aboutToExitView(); - // Remove view from stack. - mMainWindow->removeView(view); + // Prepare for send animation if returing from editor and message has been sent. + if (topViewId == NmUiViewMessageEditor && mUiEngine->isSendingMessage()) { + mEffects->prepareEffect(NmUiEffects::NmEditorSendMessageAnimation); + } + mViewStack->pop(); + // Call custom exit function + view->aboutToExitView(); + // Remove view from stack. + mMainWindow->removeView(view); - // if we were in editor and sent a message, pop viewer from stack first - // so we can go straight to mail list - if (!mViewStack->isEmpty() && topViewId == NmUiViewMessageEditor && - mUiEngine->isSendingMessage() && - mViewStack->top()->nmailViewId() == NmUiViewMessageViewer) { - NmBaseView *tmpView = mViewStack->pop(); - mMainWindow->removeView(tmpView); - delete tmpView; - tmpView = NULL; - } + // if we were in editor and sent a message, pop viewer from stack first + // so we can go straight to mail list + if (!mViewStack->isEmpty() && topViewId == NmUiViewMessageEditor && + mUiEngine->isSendingMessage() && + mViewStack->top()->nmailViewId() == NmUiViewMessageViewer) { + NmBaseView *tmpView = mViewStack->pop(); + mMainWindow->removeView(tmpView); + delete tmpView; + tmpView = NULL; + } - if (!mViewStack->isEmpty()) { - // Activate next view in stack - NmBaseView *showView = mViewStack->top(); - mMainWindow->addView(showView); - mMainWindow->setCurrentView(showView); - // Store activated view id - mActiveViewId=showView->nmailViewId(); - // Perform send animation if requested. - mEffects->startEffect(NmUiEffects::NmEditorSendMessageAnimation); - } + if (!mViewStack->isEmpty()) { + // Activate next view in stack + NmBaseView *showView = mViewStack->top(); + mMainWindow->addView(showView); + mMainWindow->setCurrentView(showView); + // Store activated view id + mActiveViewId=showView->nmailViewId(); + // Perform send animation if requested. + mEffects->startEffect(NmUiEffects::NmEditorSendMessageAnimation); + } - delete view; - view = NULL; + delete view; + view = NULL; #ifndef NM_WINS_ENV - // If view was started as service, move the app now - // to the background, unless it was started when the app - // was already in foreground.. - if (mServiceViewId == topViewId) { - mServiceViewId = NmUiViewNone; + // If view was started as service, move the app now + // to the background, unless it was started when the app + // was already in foreground.. + if (mServiceViewId == topViewId) { + mServiceViewId = NmUiViewNone; - // if started as embedded, do not hide the app - if (!XQServiceUtil::isEmbedded() && - !mForegroundService) { - XQServiceUtil::toBackground(true); - } + // if started as embedded, do not hide the app + if (!XQServiceUtil::isEmbedded() && + !mForegroundService) { + XQServiceUtil::toBackground(true); } + } #endif - } } // If the view stack is now empty quit the app @@ -378,7 +395,7 @@ if (topId!=NmUiViewMessageEditor && topId!=NmUiViewMailboxList && topId!=startParam->viewId()) { - popView(); + prepareForPopView(); } else { // Editor or mailbox list in the top. Stop the loop. @@ -429,15 +446,11 @@ break; } - NmMessageListModel &messageListModel = - mUiEngine->messageListModel(startParam->mailboxId(), - startParam->folderId()); - - NmMessageSearchListModel &searchListModel = - mUiEngine->messageSearchListModel(&messageListModel); + NmMessageListModel &model = + mUiEngine->messageListModelForSearch(startParam->mailboxId()); NmMessageSearchListView *searchListView = new NmMessageSearchListView( - *this, startParam, *mUiEngine, searchListModel, + *this, startParam, *mUiEngine, model, new HbDocumentLoader(mMainWindow)); pushView(searchListView); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmattachmentmanager.cpp --- a/emailuis/nmailui/src/nmattachmentmanager.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmattachmentmanager.cpp Thu May 27 12:43:55 2010 +0300 @@ -77,6 +77,85 @@ } /*! + Fetch attachments to a message. + Set observer with setObserver method to get process and complete events +*/ +void NmAttachmentManager::fetchAttachments( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + QList &messagePartIds) +{ + // cancel old fetch operation, Does nothing if fetch not ongoing + // We don't wan't to cancel message fetching operation, because + // it might still be finishing. + if (!mMsgFetchOperation) { + cancelFetch(); + } + + if (messagePartIds.count() > 0) { + mFetchOperation = mUiEngine.fetchMessageParts( + mailboxId, + folderId, + messageId, + messagePartIds); + } + + if (mFetchOperation) { + mAttaId = 0; + mIsFetching = true; + QObject::connect(mFetchOperation, SIGNAL(operationCompleted(int)), + this, SLOT(attachmentFetchCompleted(int))); + + QObject::connect(mFetchOperation, SIGNAL(operationProgressChanged(int)), + this, SLOT(changeProgress(int))); + + } +} + +/*! + Fetch all message parts to a message. Fetches also message part data structure, + if not fetched already. + If earlier fetch operation exist it is cancelled and deleted. + Set observer with setObserver method to get process and complete events +*/ +void NmAttachmentManager::fetchAllMessageParts( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId) +{ + fetchMsg = mUiEngine.message(mailboxId,folderId,messageId); + + // Check if we have part data structure. + if (fetchMsg->childParts().count() == 0 && + fetchMsg->fetchedSize() < fetchMsg->size()) { + + // cancel old fetch operation, Does nothing if fetch not ongoing + cancelFetch(); + + // Fetch the message. + mMsgFetchOperation = mUiEngine.fetchMessage( + fetchMsg->envelope().mailboxId(), + fetchMsg->envelope().folderId(), + fetchMsg->envelope().messageId()); + + mAttaId = 0; + mIsFetching = true; + + if (mMsgFetchOperation) { + QObject::connect(mMsgFetchOperation, + SIGNAL(operationCompleted(int)), + this, + SLOT(messageFetched(int))); + } + + } + else { + messageFetched(NmNoError); + } +} + +/*! Retruns true if fetch operation is ongoing */ bool NmAttachmentManager::isFetching() const @@ -100,6 +179,9 @@ if (mFetchOperation && mFetchOperation->isRunning()) { mFetchOperation->cancelOperation(); } + if (mMsgFetchOperation && mMsgFetchOperation->isRunning()) { + mMsgFetchOperation->cancelOperation(); + } mIsFetching = false; mAttaId = 0; mProgressValue = 0; @@ -130,6 +212,52 @@ } /*! + Used by message fetch operation +*/ +void NmAttachmentManager::messageFetched(int result) +{ + QObject::disconnect(mFetchOperation, + SIGNAL(operationCompleted(int)), + this, + SLOT(messageFetched(int))); + + if (result == NmNoError) { + + // Reload message + fetchMsg = mUiEngine.message( + fetchMsg->envelope().mailboxId(), + fetchMsg->envelope().folderId(), + fetchMsg->envelope().messageId()); + + if (fetchMsg) { + QList partIds; + NmMessagePart *part; + foreach (part, fetchMsg->childParts()) { + if (part->size() > part->fetchedSize()) { + partIds.append(part->partId()); + } + } + if (partIds.count() > 0) { + fetchAttachments( + fetchMsg->envelope().mailboxId(), + fetchMsg->envelope().folderId(), + fetchMsg->envelope().messageId(), + partIds); + } + else { + mFetchObserver->fetchCompleted(result); + } + } + else { + mFetchObserver->fetchCompleted(NmNotFoundError); + } + } + else { + mFetchObserver->fetchCompleted(result); + } +} + +/*! Sets fetch observer */ void NmAttachmentManager::setObserver(NmAttachmentFetchObserver *observer) diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmbaseview.cpp --- a/emailuis/nmailui/src/nmbaseview.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmbaseview.cpp Thu May 27 12:43:55 2010 +0300 @@ -27,9 +27,11 @@ Constructor */ NmBaseView::NmBaseView(NmUiStartParam* startParam, + NmApplication &application, QGraphicsItem *parent) : HbView(parent), -mStartParam(startParam) +mStartParam(startParam), +mApplication(application) { } @@ -42,12 +44,13 @@ } /*! - Is it ok to exit current view. Function is called when exiting the view. - Views can override this function and return false to stay in current view. + Is it ok to exit current view. Function is called when exiting the view. + Views can override this function and deside are they going to signal popView + or not. For example based on the user query. */ -bool NmBaseView::okToExitView() +void NmBaseView::okToExitView() { - return true; + mApplication.popView(); } /*! diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmeditorheader.cpp --- a/emailuis/nmailui/src/nmeditorheader.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmeditorheader.cpp Thu May 27 12:43:55 2010 +0300 @@ -18,10 +18,7 @@ #include "nmuiheaders.h" // Layout -static const char *NMUI_EDITOR_TO_LABEL = "EditorHeaderToLabel"; -static const char *NMUI_EDITOR_TO_EDIT = "EditorHeaderToEdit"; -static const char *NMUI_EDITOR_TO_BUTTON = "EditorHeaderToButton"; -static const char *NMUI_EDITOR_RECIPIENT_GB = "EditorHeaderRecipientGB"; +static const char *NMUI_EDITOR_RECIPIENT_FIELDS = "RecipientFields"; static const char *NMUI_EDITOR_SUBJECT_LABEL = "EditorHeaderSubjectLabel"; static const char *NMUI_EDITOR_SUBJECT_EDIT = "EditorHeaderSubjectEdit"; static const char *NMUI_EDITOR_PRIORITY_ICON = "labelPriorityIcon"; @@ -30,9 +27,7 @@ // Following constants are removed when header fields will offer these static const double Un = 6.66; static const double FieldHeightWhenSecondaryFont = 5 * Un; -static const int GroupBoxTitleHeight = 42; static const double Margin = 2 * Un; -static const double HeaderAreaMarginsTotal = 3 * Un; static const double IconFieldWidth = 5 * Un; static const int nmLayoutSystemWaitTimer = 10; @@ -48,8 +43,11 @@ mIconVisible(false), mSubjectEdit(NULL), mRecipientFieldsEmpty(true), - mGroupBoxRecipient(NULL), - mAttachmentList(NULL) + mAttachmentList(NULL), + mToField(NULL), + mCcField(NULL), + mBccField(NULL), + mCcBccFieldVisible(false) { loadWidgets(); rescaleHeader(); @@ -72,23 +70,24 @@ */ void NmEditorHeader::loadWidgets() { - // To: field objects - HbLabel *toLabel = qobject_cast - (mDocumentLoader->findWidget(NMUI_EDITOR_TO_LABEL)); - NmRecipientLineEdit *toEdit = qobject_cast - (mDocumentLoader->findWidget(NMUI_EDITOR_TO_EDIT)); - HbPushButton *toButton = qobject_cast - (mDocumentLoader->findWidget(NMUI_EDITOR_TO_BUTTON)); - mToField = new NmRecipientField(toLabel, toEdit, toButton); + // Add "To:", "CC:" and "BCC:" fields + mHeader = qobject_cast + (mDocumentLoader->findWidget(NMUI_EDITOR_RECIPIENT_FIELDS)); + + mLayout = new QGraphicsLinearLayout(Qt::Vertical); + mLayout->setContentsMargins(0,Un,0,0); - // Create recipient group box which includes cc and bcc fields - mGroupBoxRecipient = qobject_cast - (mDocumentLoader->findWidget(NMUI_EDITOR_RECIPIENT_GB)); - // Ownership is transfered - mGroupBoxRecipient->setContentWidget(createRecipientGroupBoxContentWidget()); - mGroupBoxRecipient->setHeading(hbTrId("txt_mail_subhead_ccbcc")); - mGroupBoxRecipient->setCollapsable(true); - mGroupBoxRecipient->setCollapsed(true); + mToField = new NmRecipientField(QString("To:"), mHeader); + mCcField = new NmRecipientField(QString("Cc:"), mHeader); + mBccField = new NmRecipientField(QString("Bcc:"), mHeader); + + // Only 'To:' field is visible at startup + mLayout->addItem(mToField); + mCcField->hide(); + mBccField->hide(); + + mHeader->setLayout(mLayout); + mHeader->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::MinimumExpanding); // Add Subject: field mSubjectLabel = qobject_cast @@ -121,16 +120,12 @@ // Signals for handling the recipient field expanding connect(mToField, SIGNAL(textChanged(const QString &)), - this, SLOT(sendHeaderHeightChanged())); + this, SLOT(fixHeaderFieldHeights())); connect(mCcField, SIGNAL(textChanged(const QString &)), - this, SLOT(sendHeaderHeightChanged())); + this, SLOT(fixHeaderFieldHeights())); connect(mBccField, SIGNAL(textChanged(const QString &)), - this, SLOT(sendHeaderHeightChanged())); - connect(mSubjectEdit, SIGNAL(contentsChanged()), this, SLOT(sendHeaderHeightChanged())); - - // Signal for handling the recipient group box expanding/collapsing - connect(mGroupBoxRecipient, SIGNAL(toggled(bool)), - this, SLOT(groupBoxExpandCollapse())); + this, SLOT(fixHeaderFieldHeights())); + connect(mSubjectEdit, SIGNAL(contentsChanged()), this, SLOT(fixHeaderFieldHeights())); // Signals for handling the attachment list connect(&mAttachmentList->listWidget(), SIGNAL(itemActivated(int)), @@ -142,6 +137,30 @@ } /*! + Show or hide recipient field +*/ +void NmEditorHeader::setFieldVisibility(bool isVisible) +{ + if ( mCcBccFieldVisible != isVisible ) { + mCcBccFieldVisible = isVisible; + if (mCcBccFieldVisible) { + mCcField->show(); + mBccField->show(); + mLayout->addItem(mCcField); + mLayout->addItem(mBccField); + } + else { + mCcField->hide(); + mBccField->hide(); + mLayout->removeItem(mCcField); + mLayout->removeItem(mBccField); + } + + QTimer::singleShot(nmLayoutSystemWaitTimer*2, this, SLOT(fixHeaderFieldHeights())); + } +} + +/*! Function can be used to rescale the header area. */ void NmEditorHeader::rescaleHeader() @@ -155,27 +174,66 @@ int NmEditorHeader::headerHeight() const { qreal toHeight = mToField->height(); + qreal ccHeight = 0; + qreal bccHeight = 0; + if (mCcBccFieldVisible) { + ccHeight = mCcField->height(); + bccHeight = mBccField->height(); + } qreal subjectHeight = mSubjectEdit->geometry().height() + Margin; // When called first time, height is wrongly 'Margin' if (toHeight == Margin) { toHeight = FieldHeightWhenSecondaryFont; + ccHeight = FieldHeightWhenSecondaryFont; + bccHeight = FieldHeightWhenSecondaryFont; subjectHeight = FieldHeightWhenSecondaryFont; } - // Recipient GroupBox - qreal recipientGroupBoxHeight = GroupBoxTitleHeight; - if (!mGroupBoxRecipient->isCollapsed()) { - recipientGroupBoxHeight += - mGroupBoxRecipientContent->geometry().height() + HeaderAreaMarginsTotal; - } - qreal attHeight = 0; if (mAttachmentList && mAttachmentList->count() > 0) { attHeight = mAttachmentList->listWidget().geometry().height(); } - return (int)(toHeight + recipientGroupBoxHeight + subjectHeight + attHeight); + return (int)(toHeight + ccHeight + bccHeight + subjectHeight + attHeight); +} + +/*! + Send signal to inform that one of the recipient fields height has been changed. + */ +void NmEditorHeader::fixHeaderFieldHeights() +{ + // Adjust height of recipient fields + adjustFieldSizeValues(mToField->editor(), mToField->editor()->document()->size().height()); + adjustFieldSizeValues(mCcField->editor(), mCcField->editor()->document()->size().height()); + adjustFieldSizeValues(mBccField->editor(), mBccField->editor()->document()->size().height()); + + // Adjust height of the subject field + if (mSubjectEdit->document()->size().height() > FieldHeightWhenSecondaryFont) { + mSubjectEdit->setPreferredHeight( + mSubjectEdit->document()->size().height() + Margin ); + } + else { + mSubjectEdit->setPreferredHeight( FieldHeightWhenSecondaryFont ); + } + + QTimer::singleShot(nmLayoutSystemWaitTimer*5, this, SLOT(sendHeaderHeightChanged())); +} + + +/*! + Private routine to adjust heights of the recipient fields + */ +void NmEditorHeader::adjustFieldSizeValues( NmRecipientLineEdit *widget, qreal height ) +{ + if (height > FieldHeightWhenSecondaryFont) { + widget->setMaximumHeight( height + Margin ); + widget->setMinimumHeight( height + Margin ); + } + else { + widget->setMaximumHeight( FieldHeightWhenSecondaryFont ); + widget->setMinimumHeight( FieldHeightWhenSecondaryFont ); + } } /*! @@ -183,16 +241,6 @@ */ void NmEditorHeader::sendHeaderHeightChanged() { - // Adjust field heights - mToField->editor()->setPreferredHeight( - mToField->editor()->document()->size().height() + Margin); - mCcField->editor()->setPreferredHeight( - mCcField->editor()->document()->size().height() + Margin); - mBccField->editor()->setPreferredHeight( - mBccField->editor()->document()->size().height() + Margin); - mSubjectEdit->setPreferredHeight( - mSubjectEdit->document()->size().height() + Margin); - int hHeight = headerHeight(); if (mHeaderHeight != hHeight) { mHeaderHeight = hHeight; @@ -201,34 +249,25 @@ } /*! - This slot is called when group box state is changed. Timer is used to give some time - for layout system so that header hight can be recalculated correctly + Return pointer to to edit */ -void NmEditorHeader::groupBoxExpandCollapse() -{ - QTimer::singleShot(nmLayoutSystemWaitTimer, this, SLOT(sendHeaderHeightChanged())); -} - -/*! - Return pointer to to field - */ -NmRecipientLineEdit* NmEditorHeader::toField() const +NmRecipientLineEdit* NmEditorHeader::toEdit() const { return mToField->editor(); } /*! - Return pointer to cc field + Return pointer to cc edit */ -NmRecipientLineEdit* NmEditorHeader::ccField() const +NmRecipientLineEdit* NmEditorHeader::ccEdit() const { return mCcField->editor(); } /*! - Return pointer to bcc field + Return pointer to bcc edit */ -NmRecipientLineEdit* NmEditorHeader::bccField() const +NmRecipientLineEdit* NmEditorHeader::bccEdit() const { return mBccField->editor(); } @@ -236,7 +275,7 @@ /*! Return pointer to subject field */ -NmHtmlLineEdit* NmEditorHeader::subjectField() const +NmHtmlLineEdit* NmEditorHeader::subjectEdit() const { return mSubjectEdit; } @@ -264,39 +303,6 @@ } /*! - This function create content widget for recipient group box. - When AD offers groupBox content widget handling. This function - need to be changed to use AD/docml - */ -HbWidget* NmEditorHeader::createRecipientGroupBoxContentWidget() -{ - mGroupBoxRecipientContent = new HbWidget(); - - // Create layout for the widget - mGbVerticalLayout = new QGraphicsLinearLayout(Qt::Vertical,mGroupBoxRecipientContent); - mCcFieldLayout = new QGraphicsLinearLayout(Qt::Horizontal, mGbVerticalLayout); - mBccFieldLayout = new QGraphicsLinearLayout(Qt::Horizontal, mGbVerticalLayout); - - // Add Cc: field into widget - mCcField = new NmRecipientField(hbTrId("txt_mail_editor_cc")); - if (mCcField) { - mCcField->setObjectName("lineEditCcField"); - mGbVerticalLayout->insertItem(EEditorCcLine, mCcField ); - } - - // Add Bcc: field into widget - mBccField = new NmRecipientField(hbTrId("txt_mail_editor_bcc")); - if (mBccField){ - mBccField->setObjectName("lineEditBccField"); - mGbVerticalLayout->insertItem(EEditorBccLine, mBccField); - } - mGbVerticalLayout->setContentsMargins(0,0,0,0); - - mGroupBoxRecipientContent->setLayout(mGbVerticalLayout); - return mGroupBoxRecipientContent; -} - -/*! Sets the icon for priority */ void NmEditorHeader::setPriority(NmMessagePriority priority) @@ -349,18 +355,7 @@ break; } // Update subject field height because row amount might have been changed. - // Done with delayed timer so that layout system has finished before. - QTimer::singleShot(nmLayoutSystemWaitTimer, this, SLOT(sendHeaderHeightChanged())); - // This second call will set new position for body if subject field height has been changed. - QTimer::singleShot(nmLayoutSystemWaitTimer * 2, this, SLOT(sendHeaderHeightChanged())); -} - -/*! - * \brief Sets the groupbox to be expanded or collapsed. - */ -void NmEditorHeader::setGroupBoxCollapsed( bool collapsed ) -{ - mGroupBoxRecipient->setCollapsed( collapsed ); + QTimer::singleShot(nmLayoutSystemWaitTimer * 3, this, SLOT(fixHeaderFieldHeights())); } /*! diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmeditorview.cpp --- a/emailuis/nmailui/src/nmeditorview.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmeditorview.cpp Thu May 27 12:43:55 2010 +0300 @@ -39,7 +39,7 @@ NmUiStartParam* startParam, NmUiEngine &uiEngine, QGraphicsItem *parent) - : NmBaseView(startParam, parent), + : NmBaseView(startParam, application, parent), mApplication(application), mUiEngine(uiEngine), mDocumentLoader(NULL), @@ -54,7 +54,9 @@ mRemoveAttachmentOperation(NULL), mCheckOutboxOperation(NULL), mWaitDialog(NULL), - mAttachmentPicker(NULL) + mQueryDialog(NULL), + mAttachmentPicker(NULL), + mCcBccFieldVisible(false) { mDocumentLoader = new HbDocumentLoader(); // Set object name @@ -93,6 +95,7 @@ delete mAttachmentListContextMenu; } delete mWaitDialog; + delete mQueryDialog; delete mAttachmentPicker; } @@ -204,35 +207,35 @@ } /* - Query user if we want to exit the editor + Launch dialog for query user if we want to exit the editor */ -bool NmEditorView::okToExitView() +void NmEditorView::okToExitView() { + NmEditorHeader *header = mContentWidget->header(); + bool okToExit = true; - - NmEditorHeader *header = mContentWidget->header(); // show the query if the message has not been sent if (mMessage && header) { // see if editor has any content int toTextLength = 0; - if (header->toField()) { - toTextLength = header->toField()->text().length(); + if (header->toEdit()) { + toTextLength = header->toEdit()->text().length(); } int ccTextLength = 0; - if (header->ccField()) { - ccTextLength = header->ccField()->text().length(); + if (header->ccEdit()) { + ccTextLength = header->ccEdit()->text().length(); } int bccTextLength = 0; - if (header->bccField()) { - bccTextLength = header->bccField()->text().length(); + if (header->bccEdit()) { + bccTextLength = header->bccEdit()->text().length(); } int subjectLength = 0; - if (header->subjectField()) { - subjectLength = header->subjectField()->text().length(); + if (header->subjectEdit()) { + subjectLength = header->subjectEdit()->text().length(); } QList attachmentList; @@ -244,11 +247,36 @@ // content exists, verify exit from user if (!okToExit) { - okToExit = NmUtilities::displayQuestionNote(hbTrId("txt_mail_dialog_delete_message")); + if (mQueryDialog) { + delete mQueryDialog; + mQueryDialog = 0; + } + // Launch query dialog. + mQueryDialog = NmUtilities::displayQuestionNote(hbTrId("txt_mail_dialog_delete_message"), + this, + SLOT(okToExitQuery(HbAction*))); } } + + // no need to query anything, just exit. + if(okToExit) { + QMetaObject::invokeMethod(&mApplication, + "popView", + Qt::QueuedConnection); + } +} - return okToExit; +/*! + Handle the user selection is it ok to exit. +*/ +void NmEditorView::okToExitQuery(HbAction* action) +{ + // Check that 'Yes' button was pressed. Use loc string 'txt_mail_dialog_yes' when possible. + if (action->text() == "Yes") { + QMetaObject::invokeMethod(&mApplication, + "popView", + Qt::QueuedConnection); + } } /*! @@ -424,26 +452,56 @@ NmUtilities::getRecipientsFromMessage(*mMessage, invalidAddresses, NmUtilities::InvalidAddress); } - bool okToSend = true; if (invalidAddresses.count() > 0) { // invalid addresses found, verify send from user QString noteText = hbTrId("txt_mail_dialog_invalid_mail_address_send"); // set the first failing address to the note noteText = noteText.arg(invalidAddresses.at(0).address()); - okToSend = NmUtilities::displayQuestionNote(noteText); + + if (mQueryDialog) { + delete mQueryDialog; + mQueryDialog = 0; + } + // Launch query dialog. Pressing "yes" will finalize the sending. + mQueryDialog = NmUtilities::displayQuestionNote(noteText, + this, + SLOT(invalidAddressQuery(HbAction*))); + } + else { + // no need to ask anything, just send + finalizeSending(); } - - if (okToSend) { - QList preliminaryOperations; - preliminaryOperations.append(mAddAttachmentOperation); - preliminaryOperations.append(mRemoveAttachmentOperation); - // ownership of mMessage is transferred - // NmOperations are automatically deleted after completion - mUiEngine.sendMessage(mMessage, preliminaryOperations); - mMessage = NULL; - preliminaryOperations.clear(); - mApplication.popView(); +} + +/*! + Send the message after all checks have been done. +*/ +void NmEditorView::finalizeSending() +{ + QList preliminaryOperations; + preliminaryOperations.append(mAddAttachmentOperation); + preliminaryOperations.append(mRemoveAttachmentOperation); + // ownership of mMessage is transferred + // NmOperations are automatically deleted after completion + mUiEngine.sendMessage(mMessage, preliminaryOperations); + mMessage = NULL; + preliminaryOperations.clear(); + // Must use delayed editor view destruction so that query dialog + // (which has signaled this) gets time to complete. + QMetaObject::invokeMethod(&mApplication, + "popView", + Qt::QueuedConnection); +} + +/*! + Handle the user selection for invalid address query which was started by startSending. +*/ +void NmEditorView::invalidAddressQuery(HbAction* action) +{ + // Check that 'Yes' button was pressed. Use loc string 'txt_mail_dialog_yes' when possible. + if (action->text() == "Yes") { + finalizeSending(); } } @@ -485,34 +543,34 @@ } } if (mContentWidget && mContentWidget->header() ) { - if (mContentWidget->header()->subjectField()) { + if (mContentWidget->header()->subjectEdit()) { mMessage->envelope().setSubject( - mContentWidget->header()->subjectField()->text()); + mContentWidget->header()->subjectEdit()->text()); } - if (mContentWidget->header()->toField()) { + if (mContentWidget->header()->toEdit()) { QString toFieldText = - mContentWidget->header()->toField()->text(); + mContentWidget->header()->toEdit()->text(); // This verification of zero length string isn't needed // after list of addresses if (toFieldText.length() > 0) { - mMessage->envelope().setToRecipients(mContentWidget->header()->toField()->emailAddressList()); + mMessage->envelope().setToRecipients(mContentWidget->header()->toEdit()->emailAddressList()); } } - if (mContentWidget->header()->ccField()) { + if (mContentWidget->header()->ccEdit()) { QString ccFieldText = - mContentWidget->header()->ccField()->text(); + mContentWidget->header()->ccEdit()->text(); if (ccFieldText.length() > 0) { - mMessage->envelope().setCcRecipients(mContentWidget->header()->ccField()->emailAddressList()); + mMessage->envelope().setCcRecipients(mContentWidget->header()->ccEdit()->emailAddressList()); } } - if (mContentWidget->header()->bccField()) { + if (mContentWidget->header()->bccEdit()) { QString bccFieldText = - mContentWidget->header()->bccField()->text(); + mContentWidget->header()->bccEdit()->text(); if (bccFieldText.length() > 0) { - mMessage->envelope().setBccRecipients(mContentWidget->header()->bccField()->emailAddressList()); + mMessage->envelope().setBccRecipients(mContentWidget->header()->bccEdit()->emailAddressList()); } } } @@ -559,14 +617,14 @@ bccAddressesString = addressListToString(messageEnvelope.bccRecipients()); } - mContentWidget->header()->toField()->setPlainText(toAddressesString); - mContentWidget->header()->ccField()->setPlainText(ccAddressesString); - mContentWidget->header()->bccField()->setPlainText(bccAddressesString); + mContentWidget->header()->toEdit()->setPlainText(toAddressesString); + mContentWidget->header()->ccEdit()->setPlainText(ccAddressesString); + mContentWidget->header()->bccEdit()->setPlainText(bccAddressesString); if (ccAddressesString.length() || bccAddressesString.length()) { // Since cc or/and bcc recipients exist, expand the group box to display // the addresses by expanding the group box. - mContentWidget->header()->setGroupBoxCollapsed(false); + mContentWidget->header()->setFieldVisibility(true); } // Set subject. @@ -574,7 +632,7 @@ QString *subject = mStartParam->subject(); if (subject) { - mContentWidget->header()->subjectField()->setPlainText(*subject); + mContentWidget->header()->subjectEdit()->setPlainText(*subject); } } else { @@ -587,7 +645,7 @@ } // Construct the subject field. - mContentWidget->header()->subjectField()->setPlainText( + mContentWidget->header()->subjectEdit()->setPlainText( addSubjectPrefix(editorStartMode, messageEnvelope.subject())); } @@ -730,11 +788,21 @@ */ void NmEditorView::createOptionsMenu() { - if (!mPrioritySubMenu) { + menu()->clearActions(); + + // Create CC/BCC options menu object + if (mCcBccFieldVisible) { + menu()->addAction(hbTrId("txt_mail_opt_hide_cc_bcc"), this, SLOT(switchCcBccFieldVisibility())); + } + else { + menu()->addAction(hbTrId("txt_mail_opt_show_cc_bcc"), this, SLOT(switchCcBccFieldVisibility())); + } + + // Create Priority options menu object + if (!mPrioritySubMenu) { mPrioritySubMenu = new HbMenu(); } mPrioritySubMenu->clearActions(); - menu()->clearActions(); NmActionRequest request(this, NmActionOptionsMenu, NmActionContextViewEditor, NmActionContextDataMessage, mStartParam->mailboxId(), mStartParam->folderId(), mStartParam->messageId()); @@ -750,6 +818,22 @@ } /*! + Show or hide Cc field +*/ +void NmEditorView::switchCcBccFieldVisibility() +{ + if (mCcBccFieldVisible) { + mCcBccFieldVisible = false; + } + else { + mCcBccFieldVisible = true; + } + mHeaderWidget->setFieldVisibility( mCcBccFieldVisible ); + + QTimer::singleShot(NmOrientationTimer, this, SLOT(sendHeaderHeightChanged())); +} + +/*! handleActionCommand. From NmActionObserver, extension manager calls this call to handle menu command in the UI. */ @@ -776,6 +860,20 @@ break; } } + else if (actionResponse.menuType() == NmActionContextMenu) { + switch (responseCommand) { + case NmActionResponseCommandRemoveAttachment: { + removeAttachmentTriggered(); + break; + } + case NmActionResponseCommandOpenAttachment: { + openAttachmentTriggered(); + break; + } + default: + break; + } + } } /*! @@ -898,13 +996,13 @@ // editors that show the button in VKB. HbEditorInterface editorInterface(mContentWidget->editor()); editorInterface.addAction(list[i]); - HbEditorInterface toEditorInterface(mContentWidget->header()->toField()); + HbEditorInterface toEditorInterface(mContentWidget->header()->toEdit()); toEditorInterface.addAction(list[i]); - HbEditorInterface ccEditorInterface(mContentWidget->header()->ccField()); + HbEditorInterface ccEditorInterface(mContentWidget->header()->ccEdit()); ccEditorInterface.addAction(list[i]); - HbEditorInterface bccEditorInterface(mContentWidget->header()->bccField()); + HbEditorInterface bccEditorInterface(mContentWidget->header()->bccEdit()); bccEditorInterface.addAction(list[i]); - HbEditorInterface subjectEditorInterface(mContentWidget->header()->subjectField()); + HbEditorInterface subjectEditorInterface(mContentWidget->header()->subjectEdit()); subjectEditorInterface.addAction(list[i]); } } @@ -1068,28 +1166,7 @@ // Add menu position check here, so that it does not go outside of the screen QPointF menuPos(point.x(),point.y()); mAttachmentListContextMenu->setPreferredPos(menuPos); - mAttachmentListContextMenu->open(this, SLOT(contextButton(NmActionResponse&))); -} - -/*! - Slot. Signaled when menu option is selected -*/ -void NmEditorView::contextButton(NmActionResponse &result) -{ - if (result.menuType() == NmActionContextMenu) { - switch (result.responseCommand()) { - case NmActionResponseCommandRemoveAttachment: { - removeAttachmentTriggered(); - break; - } - case NmActionResponseCommandOpenAttachment: { - openAttachmentTriggered(); - break; - } - default: - break; - } - } + mAttachmentListContextMenu->open(); } /*! diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmmailboxlistview.cpp --- a/emailuis/nmailui/src/nmmailboxlistview.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmmailboxlistview.cpp Thu May 27 12:43:55 2010 +0300 @@ -37,7 +37,7 @@ NmMailboxListModel &mailboxListModel, HbDocumentLoader *documentLoader, QGraphicsItem *parent) -: NmBaseView(startParam,parent), +: NmBaseView(startParam, application, parent), mApplication(application), mMailboxListWidget(NULL), mUiEngine(uiEngine), @@ -97,9 +97,6 @@ QObject::connect(mMailboxListWidget, SIGNAL(activated(const QModelIndex &)), this, SLOT(itemActivated(const QModelIndex &))); - QObject::connect(mMailboxListWidget, - SIGNAL(longPressed(HbAbstractViewItem*, const QPointF&)), - this, SLOT(showItemContextMenu(HbAbstractViewItem*,const QPointF&))); mMailboxListWidget->setClampingStyle(HbScrollArea::BounceBackClamping); mMailboxListWidget->setFrictionEnabled(true); } @@ -197,71 +194,6 @@ } /*! - showItemContextMenu. Functions starts fetching item context menu objects - from extension. Menu is displayed in view callback funtion. -*/ -void NmMailboxListView::showItemContextMenu(HbAbstractViewItem *item, const QPointF &coords) -{ - if (mItemContextMenu&&item){ - // Clear previous items from context menu - mItemContextMenu->clearActions(); - // Get mailbox meta data - NmMailboxMetaData *mailbox = - mListModel.data(item->modelIndex(), Qt::DisplayRole).value(); - NmId mailboxId(0); - if (mailbox) { - mailboxId = mailbox->id(); - } - // Fetch items from extension based on item - NmActionRequest request(this, NmActionContextMenu, NmActionContextViewNone, - NmActionContextDataMailbox, mailboxId); - NmUiExtensionManager &extMngr = mApplication.extManager(); - QList list; - extMngr.getActions(request, list); - for (int i=0;iaddAction(list[i]); - } - // Display menu - if (mMailboxListWidget){ - mMailboxListWidget->setCurrentIndex(item->modelIndex()); - mItemContextMenu->setObjectName("MailboxItemContextMenu"); - mItemContextMenu->setPreferredPos(coords); - mItemContextMenu->open(this, SLOT(contextButton(NmActionResponse&))); - } - } -} - -/*! - Slot. Signaled when menu option is selected -*/ -void NmMailboxListView::contextButton(NmActionResponse &result) -{ - // Handle context menu commands here - if (result.menuType()==NmActionContextMenu){ - switch (result.responseCommand()){ - case NmActionResponseCommandOpen:{ - // Check that given start response has mailbox and folder id's - if (result.mailboxId()!=0){ - // Use standard folder id inbox if folder has not been specified - NmId folderId = result.folderId(); - if (folderId==0){ - folderId=mUiEngine.standardFolderId(result.mailboxId(), - NmFolderInbox); - } - NmUiStartParam *startParam = new NmUiStartParam(NmUiViewMessageList, - result.mailboxId(), - folderId); - mApplication.enterNmUiView(startParam); - } - } - break; - default: - break; - } - } -} - -/*! handleActionCommand. From NmMenuObserver, extension manager calls this call to handle menu command in the UI. */ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmmailboxlistviewitem.cpp --- a/emailuis/nmailui/src/nmmailboxlistviewitem.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmmailboxlistviewitem.cpp Thu May 27 12:43:55 2010 +0300 @@ -54,6 +54,8 @@ // To create primitives HbListViewItem::updateChildItems(); + EmailMailboxInfo mailboxInfo; + NmMailboxMetaData *mailbox = modelIndex().data(Qt::DisplayRole).value(); if (mailbox){ @@ -62,7 +64,10 @@ HbLabel *mbIcon = new HbLabel(); mbIcon->setObjectName("MailboxListViewMailboxIcon"); - mbIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconDefaultMailbox)); + + QString domainName = mailbox->address(); + QString iconName = mailboxInfo.mailboxIcon(domainName); + mbIcon->setIcon(HbIcon(iconName)); mbIcon->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); HbLabel *mbName = new HbLabel(); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmmailboxselectiondialog.cpp --- a/emailuis/nmailui/src/nmmailboxselectiondialog.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmmailboxselectiondialog.cpp Thu May 27 12:43:55 2010 +0300 @@ -63,7 +63,7 @@ */ void NmMailboxSelectionDialog::open() { - NMLOG("NmMailboxSelectionDialog::exec()"); + NMLOG("NmMailboxSelectionDialog::open()"); mMailboxId = 0; // Initialize the UI and fetch the mailbox items into the list. @@ -80,11 +80,11 @@ void NmMailboxSelectionDialog::dialogClosed(HbAction *action) { Q_UNUSED(action); - + // Store the ID of the selected mailbox into the given argument. NMLOG(QString("NmMailboxSelectionDialog::dialogClosed() return %1"). arg(mMailboxId.id())); - + emit selectionDialogClosed(mMailboxId); } @@ -164,13 +164,14 @@ NmMailboxMetaData *metaData = NULL; QStandardItem *item = NULL; + EmailMailboxInfo mailboxInfo; for (int i = 0; i < count; ++i) { metaData = mailboxMetaData(i); if (metaData) { - // Implement the branded icons when possible. - const HbIcon &mailboxIcon = - NmIcons::getIcon(NmIcons::NmIconDefaultMailbox); + QString domainName = metaData->address(); + QString iconName = mailboxInfo.mailboxIcon(domainName); + HbIcon mailboxIcon( iconName ); // Construct the item and append it into the list. item = new QStandardItem(mailboxIcon.qicon(), metaData->name()); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmmailboxserviceinterface.cpp --- a/emailuis/nmailui/src/nmmailboxserviceinterface.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmmailboxserviceinterface.cpp Thu May 27 12:43:55 2010 +0300 @@ -80,6 +80,8 @@ // Bring the application to the foreground. XQServiceUtil::toBackground(false); + HbMainWindow *mainWindow = mApplication->mainWindow(); + mainWindow->show(); // Launch the message list view. NmUiStartParam *startParam = diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmmessagelistview.cpp --- a/emailuis/nmailui/src/nmmessagelistview.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmmessagelistview.cpp Thu May 27 12:43:55 2010 +0300 @@ -19,7 +19,7 @@ static const char *NMUI_MESSAGE_LIST_VIEW = "NmMessageListView"; static const char *NMUI_MESSAGE_LIST_TREE_LIST = "MessageTreeList"; static const char *NMUI_MESSAGE_LIST_NO_MESSAGES = "MessageListNoMessages"; -static const char *NMUI_MESSAGE_LIST_FOLDER_LABEL = "folderLabel"; +static const char *NMUI_MESSAGE_LIST_FOLDER_LABEL = "labelGroupBox"; static const char *NMUI_MESSAGE_LIST_SYNC_ICON = "syncIcon"; #include "nmuiheaders.h" @@ -40,7 +40,7 @@ NmMessageListModel &messageListModel, HbDocumentLoader *documentLoader, QGraphicsItem *parent) -: NmBaseView(startParam, parent), +: NmBaseView(startParam, application, parent), mApplication(application), mMessageListWidget(NULL), mUiEngine(uiEngine), @@ -53,7 +53,8 @@ mFolderLabel(NULL), mSyncIcon(NULL), mViewReady(false), -mCurrentFolderType(NmFolderInbox) +mCurrentFolderType(NmFolderInbox), +mSettingsLaunched(false) { // Load view layout loadViewLayout(); @@ -119,9 +120,9 @@ NMLOG("nmailui: (no messages) object loading failed"); } - // Create folder label and set inbox text for it - mFolderLabel = qobject_cast(mDocumentLoader->findWidget(NMUI_MESSAGE_LIST_FOLDER_LABEL)); + mFolderLabel = qobject_cast(mDocumentLoader->findWidget(NMUI_MESSAGE_LIST_FOLDER_LABEL)); + // Disable the old sync icon implementation for the time being mSyncIcon = qobject_cast(mDocumentLoader->findWidget(NMUI_MESSAGE_LIST_SYNC_ICON)); if (mSyncIcon) { mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconOffline)); @@ -158,6 +159,33 @@ QMetaObject::invokeMethod(this, "refreshList", Qt::QueuedConnection); mViewReady=true; } + mSettingsLaunched = false; +} + +/*! + Getter for currently displayed folder type +*/ +NmFolderType NmMessageListView::folderType() +{ + return mCurrentFolderType; +} + +/*! + okToExitView. Message list view determines whether it is + ok to exit view and calls mapplication popview. +*/ +void NmMessageListView::okToExitView() +{ + // Close view if current folder is inbox + if (mCurrentFolderType==NmFolderInbox){ + mApplication.popView(); + } + // Switch to inbox + else{ + NmId mailboxId = mStartParam->mailboxId(); + NmId folderId = mUiEngine.standardFolderId(mailboxId,NmFolderInbox); + folderSelected(mailboxId,folderId); + } } /*! @@ -200,8 +228,6 @@ refreshList(); // Refresh the mailboxname setMailboxName(); - // Show message list if it is hidden - mMessageListWidget->show(); } else { NMLOG("nmailui: Invalid message list start parameter"); @@ -239,6 +265,13 @@ } } + // In each refresh, e.g. in folder change the UI signals + // lower layer about the folder that has been opened. + if (mStartParam){ + mUiEngine.updateActiveFolder(mailboxId, mStartParam->folderId()); + } + + // Set item model to message list widget if (mMessageListWidget) { mMessageListWidget->setModel(static_cast(&mMessageListModel)); QObject::connect(&mMessageListModel, SIGNAL(rowsInserted(const QModelIndex&,int,int)), @@ -254,11 +287,22 @@ } } +/*! + Sync state event handling +*/ void NmMessageListView::handleSyncStateEvent(NmSyncState syncState, const NmId & mailboxId) { if (mSyncIcon && mailboxId == mMessageListModel.currentMailboxId()) { if (syncState == Synchronizing) { mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconSynching)); + // before first sync inbox id might be zero + if (mStartParam->folderId() == 0) { + // after sync inbox id should be updated to correct value + NmId folderId = mUiEngine.standardFolderId( + mStartParam->mailboxId(), + NmFolderInbox); + mStartParam->setFolderId(folderId); + } } else { if (mUiEngine.connectionState(mailboxId) == Connected) { @@ -291,18 +335,18 @@ */ void NmMessageListView::folderSelected(NmId mailbox, NmId folder) { - // Reloas view contents with new startparams - if (mStartParam){ - NmUiStartParam* startParam = new NmUiStartParam(NmUiViewMessageList,mailbox,folder); - // Hide message lis for redraw - mMessageListWidget->hide(); + // Reload view contents with new startparams if mailbox or folder + // id is different than current values. + if (mStartParam && (mStartParam->mailboxId()!=mailbox||mStartParam->folderId()!=folder)){ + // Create start params + NmUiStartParam* startParam = new NmUiStartParam(NmUiViewMessageList,mailbox,folder); + // Store active folder type + mCurrentFolderType = mUiEngine.folderTypeById(startParam->mailboxId(),startParam->folderId()); // Reload view, ownership of the startparams is passed and old startparams // are deleted within reloadViewContents function reloadViewContents(startParam); //Set folder text to status bar setFolderName(); - // Store active folder type - mCurrentFolderType = NmFolderInbox; } } @@ -312,69 +356,30 @@ */ void NmMessageListView::showItemContextMenu(HbAbstractViewItem *listViewItem, const QPointF &coords) { - // Store long press item for later use with response - mLongPressedItem = mMessageListModel.data( - listViewItem->modelIndex(), Qt::DisplayRole).value(); - if (mItemContextMenu && mLongPressedItem && mLongPressedItem->itemType() == - NmMessageListModelItem::NmMessageItemMessage) { - - // Clear previous items from context menu - mItemContextMenu->clearActions(); - NmUiExtensionManager &extMngr = mApplication.extManager(); - QList list; - // Fetch items from extension based on item - NmMessageEnvelope *envelope = mLongPressedItem->envelopePtr(); - if (envelope){ - NmActionRequest request(this, NmActionContextMenu, NmActionContextViewMessageList, - NmActionContextDataMessage, mStartParam->mailboxId(), mStartParam->folderId(), - envelope->messageId(),QVariant::fromValue(envelope)); - extMngr.getActions(request, list); - } - else{ - NmActionRequest request(this, NmActionContextMenu, NmActionContextViewMessageList, - NmActionContextDataMessage, mStartParam->mailboxId(), mStartParam->folderId(), - envelope->messageId()); - extMngr.getActions(request, list); - } - for (int i=0;iaddAction(list[i]); - } - mItemContextMenu->setPreferredPos(coords); - mItemContextMenu->open(this, SLOT(contextButton(NmActionResponse&))); - } -} - -/*! - Slot. Signaled when menu option is selected -*/ -void NmMessageListView::contextButton(NmActionResponse &result) -{ - // Handle context menu commands here - if (result.menuType()==NmActionContextMenu){ - switch (result.responseCommand()){ - case NmActionResponseCommandOpen:{ - if (mLongPressedItem){ - NmUiStartParam *startParam = new NmUiStartParam(NmUiViewMessageViewer, - mStartParam->mailboxId(), mStartParam->folderId(), - mLongPressedItem->envelope().messageId()); - mApplication.enterNmUiView(startParam); - mLongPressedItem=NULL; - } - } - break; - //temporary solution.. - case NmActionResponseCommandForward:{ - if (mLongPressedItem){ - NmUiStartParam *startParam = new NmUiStartParam(NmUiViewMessageEditor, - mStartParam->mailboxId(), mStartParam->folderId(), - mLongPressedItem->envelope().messageId()); - mApplication.enterNmUiView(startParam); - mLongPressedItem=NULL; - } - } - break; - default: - break; + if (listViewItem) { + // Store long press item for later use with response + mLongPressedItem = mMessageListModel.data( + listViewItem->modelIndex(), Qt::DisplayRole).value(); + if (mItemContextMenu && mLongPressedItem && mLongPressedItem->itemType() == + NmMessageListModelItem::NmMessageItemMessage) { + + // Clear previous items from context menu + mItemContextMenu->clearActions(); + NmUiExtensionManager &extMngr = mApplication.extManager(); + QList list; + // Fetch items from extension based on item + NmMessageEnvelope *envelope = mLongPressedItem->envelopePtr(); + if (envelope){ + NmActionRequest request(this, NmActionContextMenu, NmActionContextViewMessageList, + NmActionContextDataMessage, mStartParam->mailboxId(), mStartParam->folderId(), + envelope->messageId(),QVariant::fromValue(envelope)); + extMngr.getActions(request, list); + for (int i=0;iaddAction(list[i]); + } + mItemContextMenu->setPreferredPos(coords); + mItemContextMenu->open(); + } } } } @@ -409,7 +414,8 @@ modelItem->setExpanded(false); } } - if (modelItem && modelItem->itemType() == NmMessageListModelItem::NmMessageItemMessage) + if (modelItem && modelItem->itemType() == NmMessageListModelItem::NmMessageItemMessage + && !mSettingsLaunched) { NmFolderType folderType = mUiEngine.folderTypeById(mStartParam->mailboxId(), mStartParam->folderId()); @@ -471,18 +477,41 @@ break; } case NmActionResponseCommandMailboxDeleted: { - mApplication.popView(); + mApplication.prepareForPopView(); break; } case NmActionResponseCommandSwitchFolder: { folderSelected(actionResponse.mailboxId(), actionResponse.folderId()); break; } + case NmActionResponseCommandSettings: { + mSettingsLaunched = true; + break; + } default: { break; } } } + + // Handle context menu commands here + else if (actionResponse.menuType()==NmActionContextMenu){ + switch (actionResponse.responseCommand()){ + case NmActionResponseCommandOpen:{ + if (mLongPressedItem){ + NmUiStartParam *startParam = new NmUiStartParam(NmUiViewMessageViewer, + mStartParam->mailboxId(), mStartParam->folderId(), + mLongPressedItem->envelope().messageId()); + mApplication.enterNmUiView(startParam); + mLongPressedItem=NULL; + } + } + break; + default: + break; + } + } + // Handle toolbar commands here else if ( actionResponse.menuType() == NmActionToolbar ) { if ( actionResponse.responseCommand() == NmActionResponseCommandNewMail ) { @@ -581,37 +610,36 @@ setFolderName. Function sets folder name to status bar */ void NmMessageListView::setFolderName() -{ - if (mStartParam && mFolderLabel) { - switch (mUiEngine.folderTypeById(mStartParam->mailboxId(), - mStartParam->folderId())) { +{ + if (mStartParam&&mFolderLabel){ + switch (mCurrentFolderType) { case NmFolderOutbox: { - mFolderLabel->setPlainText(hbTrId("txt_mail_subhead_outbox")); + mFolderLabel->setHeading(hbTrId("txt_mail_subhead_outbox")); } break; case NmFolderDrafts: { - mFolderLabel->setPlainText(hbTrId("txt_mail_subhead_drafts")); + mFolderLabel->setHeading(hbTrId("txt_mail_subhead_drafts")); } break; case NmFolderSent: { - mFolderLabel->setPlainText(hbTrId("txt_mail_subhead_sent_items")); + mFolderLabel->setHeading(hbTrId("txt_mail_subhead_sent_items")); } break; case NmFolderDeleted: { - mFolderLabel->setPlainText(hbTrId("txt_mail_subhead_deleted_items")); + mFolderLabel->setHeading(hbTrId("txt_mail_subhead_deleted_items")); } break; case NmFolderInbox: default: { - mFolderLabel->setPlainText(hbTrId("txt_mail_subhead_inbox")); + mFolderLabel->setHeading(hbTrId("txt_mail_subhead_inbox")); } - break; - } + break; + } } } diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmmessagelistviewitem.cpp --- a/emailuis/nmailui/src/nmmessagelistviewitem.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmmessagelistviewitem.cpp Thu May 27 12:43:55 2010 +0300 @@ -21,7 +21,7 @@ \brief list view item for message list view */ -static const qreal NmItemLineOpacity = 0.4; +static const int NmFolderTypeRole = Qt::UserRole+1; /*! Constructor @@ -148,12 +148,7 @@ { // member variables are created in previous function // sender - QString displayName = envelope.sender().displayName(); - if (displayName.length()) { - mSender->setText(NmUtilities::cleanupDisplayName(displayName)); - } else { - mSender->setText(envelope.sender().address()); - } + mSender->setText(senderFieldText(envelope)); // time HbExtendedLocale locale = HbExtendedLocale::system(); QDate sentLocalDate = envelope.sentTime().toLocalTime().date(); @@ -241,6 +236,9 @@ Q_UNUSED(painter); } +/*! + setFontsUnread +*/ void NmMessageListViewItem::setFontsUnread() { static QColor colorRole = HbColorScheme::color("qtc_list_item_title_normal"); @@ -248,6 +246,9 @@ setFonts(colorRole, spekki); } +/*! + setFontsRead +*/ void NmMessageListViewItem::setFontsRead() { static QColor colorRole = HbColorScheme::color("qtc_list_item_content_normal"); @@ -255,6 +256,9 @@ setFonts(colorRole, spekki); } +/*! + getFontSizes. +*/ void NmMessageListViewItem::getFontSizes() { // Get font sizes from style @@ -274,6 +278,9 @@ } } +/*! + setFonts. +*/ void NmMessageListViewItem::setFonts(const QColor &colorRole, HbFontSpec &spekki) { @@ -300,3 +307,59 @@ } } +/*! + senderFieldText. Function returns sender field text from + envelope based on currently used function +*/ +QString NmMessageListViewItem::senderFieldText(const NmMessageEnvelope &envelope) +{ + QString ret; + QVariant folderType = modelIndex().data( + NmFolderTypeRole).value(); + switch (folderType.toInt()) { + // Outbox, drafts and sent folder, sender name is + // replaced with first recipient from to/cc list + case NmFolderOutbox: + case NmFolderDrafts: + case NmFolderSent: + { + QList& toRecipients = envelope.toRecipients(); + QList& ccRecipients = envelope.ccRecipients(); + NmAddress addressToUse; + bool foundAddress(false); + if (toRecipients.count()){ + addressToUse=toRecipients[0]; + foundAddress=true; + } + else if (ccRecipients.count()) { + addressToUse=ccRecipients[0]; + foundAddress=true; + } + if (foundAddress){ + QString displayName = addressToUse.displayName(); + if (displayName.length()) { + ret += NmUtilities::cleanupDisplayName(displayName); + } + else { + ret += addressToUse.address(); + } + } + + } + break; + // All other folders will show sender display name + default: + { + QString displayName = envelope.sender().displayName(); + if (displayName.length()) { + ret += NmUtilities::cleanupDisplayName(displayName); + } + else { + ret += envelope.sender().address(); + } + } + break; + } + return ret; +} + diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmmessagesearchlistview.cpp --- a/emailuis/nmailui/src/nmmessagesearchlistview.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmmessagesearchlistview.cpp Thu May 27 12:43:55 2010 +0300 @@ -40,18 +40,18 @@ NmApplication &application, NmUiStartParam* startParam, NmUiEngine &uiEngine, - NmMessageSearchListModel &searchListModel, + NmMessageListModel &msgListModel, HbDocumentLoader *documentLoader, QGraphicsItem *parent) -: NmBaseView(startParam, parent), +: NmBaseView(startParam, application, parent), mApplication(application), mUiEngine(uiEngine), - mSearchListModel(searchListModel), + mMsgListModel(msgListModel), mDocumentLoader(documentLoader), mItemContextMenu(NULL), mMessageListWidget(NULL), + mInfoLabel(NULL), mNoMessagesLabel(NULL), - mInfoLabel(NULL), mLineEdit(NULL), mPushButton(NULL), mLongPressedItem(NULL), @@ -133,7 +133,7 @@ break; } case NmActionResponseCommandMailboxDeleted: { - mApplication.popView(); + mApplication.prepareForPopView(); break; } default: { @@ -141,6 +141,17 @@ } } } + // Handle context menu commands here. + if (actionResponse.menuType() == NmActionContextMenu) { + if (mLongPressedItem){ + NmUiStartParam *startParam = new NmUiStartParam(NmUiViewMessageViewer, + mStartParam->mailboxId(), mStartParam->folderId(), + mLongPressedItem->envelope().messageId()); + + mApplication.enterNmUiView(startParam); + mLongPressedItem = NULL; + } + } } @@ -181,15 +192,6 @@ mMessageListWidget->setFrictionEnabled(true); } - // Load the "no messages" label. - mNoMessagesLabel = qobject_cast( - mDocumentLoader->findWidget(NMUI_MESSAGE_SEARCH_LIST_NO_MESSAGES)); - - if (mNoMessagesLabel) { - NMLOG("NmMessageSearchListView: \"No messages\" label loaded."); - mNoMessagesLabel->hide(); - } - // Load the info label. mInfoLabel = qobject_cast( mDocumentLoader->findWidget(NMUI_MESSAGE_SEARCH_LIST_INFO_LABEL)); @@ -200,6 +202,15 @@ mInfoLabel->hide(); } + // Load the no messages label. + mNoMessagesLabel = qobject_cast( + mDocumentLoader->findWidget(NMUI_MESSAGE_SEARCH_LIST_NO_MESSAGES)); + + if (mNoMessagesLabel) { + NMLOG("NmMessageSearchListView: No messages label loaded."); + mNoMessagesLabel->hide(); + } + // Load the search panel. mLineEdit = qobject_cast( mDocumentLoader->findWidget(NMUI_MESSAGE_SEARCH_LIST_LINE_EDIT)); @@ -242,7 +253,7 @@ } // Clear the previous content if any. - mSearchListModel.clearSearchResults(); + mMsgListModel.clear(); } @@ -344,10 +355,7 @@ mStartParam = startParam; // Update the model with new parameters. - NmMessageListModel &messageListModel = - mUiEngine.messageListModel(startParam->mailboxId(), - startParam->folderId()); - mSearchListModel.setSourceModel(&messageListModel); + mUiEngine.messageListModelForSearch(startParam->mailboxId()); refreshList(); // Refresh the mailbox name. @@ -363,6 +371,29 @@ /*! + Called when text is changed in the edit field. If there is no search term + in the edit field, the search button is dimmed and disabled. If the field + contains text, the button can be clicked. + + \param text The text in the field after the modification. +*/ +void NmMessageSearchListView::criteriaChanged(QString text) +{ + NMLOG(QString("NmMessageSearchListView::criteriaChanged %1").arg(text)); + + // Check if the button should be disabled/enabled. + bool enabled = mPushButton->isEnabled(); + + if (!enabled && !text.isEmpty()) { + mPushButton->setEnabled(true); + } + else if (enabled && text.isEmpty()) { + mPushButton->setEnabled(false); + } +} + + +/*! Displays the item context menu. This method gets called if an item on the list is long pressed. */ @@ -371,11 +402,11 @@ { // Store long press item for later use with response. mLongPressedItem = - mSearchListModel.data(listViewItem->modelIndex(), - Qt::DisplayRole).value(); + mMsgListModel.data(listViewItem->modelIndex(), + Qt::DisplayRole).value(); - if (mItemContextMenu && mLongPressedItem && mLongPressedItem->itemType() == - NmMessageListModelItem::NmMessageItemMessage) { + if (mItemContextMenu && mLongPressedItem && + mLongPressedItem->itemType() == NmMessageListModelItem::NmMessageItemMessage) { // Clear the previous menu actions. mItemContextMenu->clearActions(); NmUiExtensionManager &extMngr = mApplication.extManager(); @@ -385,15 +416,17 @@ NmMessageEnvelope *envelope = mLongPressedItem->envelopePtr(); if (envelope){ - NmActionRequest request(this, NmActionContextMenu, NmActionContextViewMessageList, - NmActionContextDataMessage, mStartParam->mailboxId(), mStartParam->folderId(), + NmActionRequest request(this, NmActionContextMenu, + NmActionContextViewMessageList, NmActionContextDataMessage, + mStartParam->mailboxId(), mStartParam->folderId(), envelope->messageId(),QVariant::fromValue(envelope)); extMngr.getActions(request, list); } else{ - NmActionRequest request(this, NmActionContextMenu, NmActionContextViewMessageList, - NmActionContextDataMessage, mStartParam->mailboxId(), mStartParam->folderId(), + NmActionRequest request(this, NmActionContextMenu, + NmActionContextViewMessageList, NmActionContextDataMessage, + mStartParam->mailboxId(), mStartParam->folderId(), envelope->messageId()); extMngr.getActions(request, list); @@ -402,37 +435,12 @@ for (int i(0); i < list.count(); ++i) { mItemContextMenu->addAction(list[i]); } + mItemContextMenu->setPreferredPos(coords); - mItemContextMenu->open(this, SLOT(contextButton(NmActionResponse&))); + mItemContextMenu->open(); } } -/*! - Slot. Signaled when menu option is selected -*/ -void NmMessageSearchListView::contextButton(NmActionResponse &result) -{ -// Handle context menu commands here. - if (result.menuType() == NmActionContextMenu){ - switch (result.responseCommand()) { - case NmActionResponseCommandOpen: { - if (mLongPressedItem){ - NmUiStartParam *startParam = new NmUiStartParam(NmUiViewMessageViewer, - mStartParam->mailboxId(), mStartParam->folderId(), - mLongPressedItem->envelope().messageId()); - - mApplication.enterNmUiView(startParam); - mLongPressedItem = NULL; - } - - break; - } - default: { - break; - } - } - } -} /*! Stores the given index and forwards the call to handleSelection(). This @@ -446,24 +454,6 @@ QMetaObject::invokeMethod(this, "handleSelection", Qt::QueuedConnection); } -/*! - Called when text is changed in the edit field - - \param text new text entered in the field - */ -void NmMessageSearchListView::criteriaChanged(QString text) -{ - NMLOG(QString("NmMessageSearchListView::criteriaChanged %1").arg(text)); - - // Check when button should be disabled/enabled - bool enabled = mPushButton->isEnabled(); - if (!enabled && !text.isEmpty()) { - mPushButton->setEnabled(true); - } - else if (enabled && text.isEmpty()) { - mPushButton->setEnabled(false); - } -} /*! If the selected item is a message, will open the message. @@ -471,7 +461,7 @@ void NmMessageSearchListView::handleSelection() { // Do expand/collapse for title divider items - NmMessageListModelItem* modelItem = mSearchListModel.data( + NmMessageListModelItem* modelItem = mMsgListModel.data( mActivatedIndex, Qt::DisplayRole).value(); if (modelItem && @@ -526,13 +516,29 @@ /*! This method gets called when an item is removed from the list. If the list - contains no items, "no messages" label is displayed. + contains no items, the info label (if visible) is hidden and the "no + messages" label is displayed. Otherwise, only the result count in the info + label is updated. */ void NmMessageSearchListView::itemsRemoved() { - if (mSearchListModel.searchResultCount() == 0) { + const int itemCount = mMsgListModel.rowCount(); + + if (itemCount == 0) { + if (mInfoLabel && mInfoLabel->isVisible()) { + // Hide the info label. + mInfoLabel->hide(); + } + + // Display the "no messages" label. noMessagesLabelVisibility(true); } + else if (mInfoLabel && mInfoLabel->isVisible()) { + // Update the search result count in the info label. + QString resultsString(hbTrId("txt_mail_list_search_results")); + resultsString.arg(itemCount); + mInfoLabel->setPlainText(resultsString); + } } @@ -543,21 +549,17 @@ { if (mMessageListWidget) { // Set the model. - NmMessageListModel &messageListModel = - mUiEngine.messageListModel(mStartParam->mailboxId(), - mStartParam->folderId()); - mSearchListModel.setSourceModel(&messageListModel); mMessageListWidget->setModel( - static_cast(&mSearchListModel)); + static_cast(&mMsgListModel)); // Connect the signals. - connect(&mSearchListModel, SIGNAL(rowsInserted(const QModelIndex&, int, int)), + connect(&mMsgListModel, SIGNAL(rowsInserted(const QModelIndex&, int, int)), this, SLOT(itemsAdded(const QModelIndex&, int, int)), Qt::UniqueConnection); - connect(&mSearchListModel, SIGNAL(rowsRemoved(const QModelIndex&, int, int)), + connect(&mMsgListModel, SIGNAL(rowsRemoved(const QModelIndex&, int, int)), this, SLOT(itemsRemoved()), Qt::UniqueConnection); - connect(&messageListModel, SIGNAL(setNewParam(NmUiStartParam*)), + connect(&mMsgListModel, SIGNAL(setNewParam(NmUiStartParam*)), this, SLOT(reloadViewContents(NmUiStartParam*)), Qt::UniqueConnection); } @@ -585,7 +587,7 @@ mSearchInProgress = true; // Clear previous results if any. - mSearchListModel.clearSearchResults(); + mMsgListModel.clear(); connect(&mUiEngine, SIGNAL(searchComplete()), this, SLOT(handleSearchComplete()), Qt::UniqueConnection); @@ -632,15 +634,7 @@ mPushButton->setIcon(HbIcon("qtg_mono_search")); } - const int resultCount = mSearchListModel.searchResultCount(); - - if (resultCount == 1) { - // For some reason when the result count is only 1, the search list - // will not display the found message. Until the underlying reason for - // this bug is found, let us use the following solution to fix this - // issue. - refreshList(); - } + const int resultCount = mMsgListModel.rowCount(); if (resultCount) { if (mInfoLabel) { diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmrecipientfield.cpp --- a/emailuis/nmailui/src/nmrecipientfield.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmrecipientfield.cpp Thu May 27 12:43:55 2010 +0300 @@ -20,7 +20,7 @@ static const double Un = 6.66; static const double Margin = 2 * Un; static const int MaxRows = 10000; -static const double LabelFieldWidth = 10 * Un + Un; +static const double LabelFieldWidth = 12.5 * Un; static const double ButtonWidth = 9.5 * Un; static const double FieldHeight = 5 * Un; static const char *ContactsServiceName = "com.nokia.services.phonebookservices"; @@ -28,26 +28,6 @@ static const char *ContactsOperationName = "fetch(QString,QString,QString)"; /*! - Constructor -*/ -NmRecipientField::NmRecipientField( - HbLabel *label, - NmRecipientLineEdit *edit, - HbPushButton *button, - QGraphicsItem *parent): - HbWidget(parent), - mLabel(label), - mRecipientsEditor(edit), - mLaunchContactsPickerButton(button), - mOwned(false) -{ - mLaunchContactsPickerButton->setIcon(NmIcons::getIcon(NmIcons::NmIconContacts)); - createConnections(); -} - - -/*! - Constructor for 'Cc:' and 'Bcc:' fields. This can be removed when groupBox content widget is created using AD/docml */ NmRecipientField::NmRecipientField(const QString &labelString, QGraphicsItem *parent): @@ -57,23 +37,25 @@ mLaunchContactsPickerButton(NULL), mOwned(true) { - mLayoutHorizontal = new QGraphicsLinearLayout(Qt::Horizontal, this); + //construct default ui. + mLayoutHorizontal = new QGraphicsLinearLayout(Qt::Horizontal); mLabel = new HbLabel(labelString); if (mLabel) { mLayoutHorizontal->addItem(mLabel); mLabel->setPreferredWidth(LabelFieldWidth); mLabel->setFontSpec(HbFontSpec(HbFontSpec::Secondary)); - mLabel->setAlignment(Qt::AlignTop); } mRecipientsEditor = new NmRecipientLineEdit(); if (mRecipientsEditor) { mLayoutHorizontal->addItem(mRecipientsEditor); mRecipientsEditor->setMaxRows(MaxRows); - mRecipientsEditor->setPreferredHeight(FieldHeight); + mRecipientsEditor->setFontSpec(HbFontSpec(HbFontSpec::Secondary)); + mRecipientsEditor->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); mRecipientsEditor->setMinimumHeight(FieldHeight); - mRecipientsEditor->setFontSpec(HbFontSpec(HbFontSpec::Secondary)); + mRecipientsEditor->setPreferredHeight(FieldHeight); + mRecipientsEditor->setMaximumHeight(FieldHeight); } mLaunchContactsPickerButton = new HbPushButton(); @@ -92,10 +74,15 @@ mLayoutHorizontal->setItemSpacing(1, Un); // Set the spacing between the label and the line edit to 0.0 mLayoutHorizontal->setItemSpacing(0, 0.0); + + this->setLayout(mLayoutHorizontal); createConnections(); } +/*! + Creates connections for this class items +*/ void NmRecipientField::createConnections() { connect(mRecipientsEditor, SIGNAL(textChanged(const QString &)), diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmsendserviceinterface.cpp --- a/emailuis/nmailui/src/nmsendserviceinterface.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmsendserviceinterface.cpp Thu May 27 12:43:55 2010 +0300 @@ -54,36 +54,23 @@ */ inline bool extractData(const QVariant &data) { - QVariant::Type dataType = data.type(); bool success = false; - switch (dataType) { - case QVariant::String: { - // The given data contains a single attachment. - QString attachment = data.toString(); - mAttachmentList = new QStringList(attachment); - success = true; - break; - } - case QVariant::StringList: { - // The given data contains a list of attachments. - QStringList attachmentList = data.toStringList(); - mAttachmentList = new QStringList(attachmentList); - success = true; - break; - } - case QVariant::Map: { - // The given data may contain a mail subject and recipient lists. - QMap map = data.toMap(); - success = processMap(map); - break; - } - default: { - // Data type not supported! - NMLOG("NmStartParamDataHelper::extractData(): Data type not supported!"); - break; - } - } // switch () + if (data.canConvert(QVariant::Map)) { + // The given data may contain a mail subject and recipient lists. + QMap map = data.toMap(); + success = processMap(map); + } + else if (data.canConvert(QVariant::StringList)) { + QStringList attachmentList = data.toStringList(); + mAttachmentList = new QStringList(attachmentList); + success = true; + } + else { + // Data type not supported! + NMLOG(QString("NmStartParamDataHelper::extractData(): Data type %1 not supported!"). + arg(data.type())); + } // Determine the editor start mode. if (mToAddresses || mCcAddresses || mBccAddresses) { @@ -289,7 +276,7 @@ */ void NmSendServiceInterface::selectionDialogClosed(NmId &mailboxId) { - NMLOG("NmSendServiceInterface::selectionDialogClosed"); + NMLOG(QString("NmSendServiceInterface::selectionDialogClosed %1").arg(mailboxId.id())); if (mailboxId.id()) { // mailbox selected launchEditorView(mailboxId); } @@ -331,35 +318,23 @@ NmId mailboxId(0); mAsyncReqId = setCurrentRequestAsync(); - + if (!validData) { // Failed to extract the data! NMLOG("NmSendServiceInterface::send(): Failed to process the given data!"); cancelService(); } else if (count == 0) { - // No mailboxes. - if (mainWindow) { - mainWindow->hide(); - } - - // Hide the app if it not embedded - if (!XQServiceUtil::isEmbedded()) { - XQServiceUtil::toBackground(true); - } - HbDeviceMessageBox note(hbTrId("txt_mail_dialog_no_mailboxes_defined"), HbMessageBox::MessageTypeInformation); note.setTimeout(HbMessageBox::NoTimeout); - note.exec(); - if (mainWindow) { - mainWindow->show(); - } + note.show(); cancelService(); } else { // count > 0 // Make sure the NMail application is in the foreground. XQServiceUtil::toBackground(false); + mainWindow->show(); mStartParam = new NmUiStartParam( NmUiViewMessageEditor, @@ -401,24 +376,25 @@ Called when mailbox id is know and editor can be opened \param mailboxId mailbox using in editor */ -void NmSendServiceInterface::launchEditorView(NmId mailboxId) +void NmSendServiceInterface::launchEditorView(NmId mailboxId) { NMLOG(QString("NmSendServiceInterface::launchEditorView %1").arg(mailboxId.id())); // Make the previous view visible again. if (mCurrentView) { mCurrentView->show(); - mCurrentView = NULL; + mCurrentView = NULL; } - + if (mStartParam) { mStartParam->setMailboxId(mailboxId); mApplication->enterNmUiView(mStartParam); mStartParam = NULL; // ownership passed } completeRequest(mAsyncReqId, 1); + mAsyncReqId = 0; } -void NmSendServiceInterface::cancelService() +void NmSendServiceInterface::cancelService() { NMLOG("NmSendServiceInterface::cancelService"); delete mStartParam; @@ -430,6 +406,7 @@ } completeRequest(mAsyncReqId, 0); + mAsyncReqId = 0; // If started as service, the application must be closed now. if (XQServiceUtil::isService()) { diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmutilities.cpp --- a/emailuis/nmailui/src/nmutilities.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmutilities.cpp Thu May 27 12:43:55 2010 +0300 @@ -271,10 +271,16 @@ // nothing to do in successfull or cancelled case if(event.mCompletionCode != NmNoError && event.mCompletionCode != NmCancelError) { if(event.mOperationType == Synch && event.mCompletionCode == NmAuthenticationError) { - openSettings = displayQuestionNote(hbTrId("txt_mail_dialog_address_or_password_incorrect")); +/* + * Commented out temporarily, because of wk18 HbDialog API deprecation. + * openSettings = displayQuestionNote(hbTrId("txt_mail_dialog_address_or_password_incorrect")); + */ } if(event.mOperationType == Synch && event.mCompletionCode == NmServerConnectionError) { - openSettings = displayQuestionNote(hbTrId("txt_mail_dialog_server_settings_incorrect")); +/* + * Commented out temporarily, because of wk18 HbDialog API deprecation. + * openSettings = displayQuestionNote(hbTrId("txt_mail_dialog_server_settings_incorrect")); + */ } // following applies to all operation/event types if(event.mCompletionCode == NmConnectionError) { @@ -285,27 +291,18 @@ } /*! - displays a note with Yes/No buttons. Note has no timeout, i.e. it has to be dismissed manually - returns boolean whether primaryaction was taken (Left button ("Yes") pressed) + Displays a note with Yes/No buttons. Note has no timeout, i.e. it has to be dismissed manually. + Returns pointer to dialog so that caller can take ownership and handle deletion. + Parameter 'receiver' is the object and 'member' is the slot where user selection is passed. */ -bool NmUtilities::displayQuestionNote(QString noteText) +HbMessageBox* NmUtilities::displayQuestionNote( + QString noteText, QObject* receiver, const char* member) { - HbMessageBox::warning(noteText); - return true; - /* - * Commented out because of exec() deprecation. Will be fixed later... - * - bool ret(false); HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion); messageBox->setText(noteText); - messageBox->setTimeout(HbMessageBox::NoTimeout); // note has to be dismissed manually - HbAction *action = messageBox->exec(); - if(action == messageBox->primaryAction()) { - ret=true; // primary/left button was pressed - } - delete messageBox; - return ret; - */ + messageBox->setTimeout(HbMessageBox::NoTimeout); // Note has to be dismissed manually + messageBox->open(receiver, member); + return messageBox; } /*! diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmviewerserviceinterface.cpp --- a/emailuis/nmailui/src/nmviewerserviceinterface.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmviewerserviceinterface.cpp Thu May 27 12:43:55 2010 +0300 @@ -71,6 +71,8 @@ if (message) { // bring application to foreground XQServiceUtil::toBackground(false); + HbMainWindow *mainWindow = mApplication->mainWindow(); + mainWindow->show(); // Launch the message list view. NmUiStartParam *startParam = diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailui/src/nmviewerview.cpp --- a/emailuis/nmailui/src/nmviewerview.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailui/src/nmviewerview.cpp Thu May 27 12:43:55 2010 +0300 @@ -47,7 +47,7 @@ NmAttachmentManager &attaManager, bool toolbarEnabled, QGraphicsItem *parent) -:NmBaseView(startParam, parent), +:NmBaseView(startParam, application, parent), mApplication(application), mUiEngine(uiEngine), mMainWindow(mainWindow), @@ -71,9 +71,7 @@ mAttaIndexUnderFetch(NmNotFoundError), mAttaWidget(NULL), mViewReady(false), -mWaitNoteCancelled(false), -mOkAction(NULL), -mCancelAction(NULL) +mWaitNoteCancelled(false) { // Create documentloader mDocumentLoader = new NmUiDocumentLoader(mMainWindow); @@ -107,10 +105,6 @@ // remove view from osbserving atta manager events mAttaManager.clearObserver(); mAttaManager.cancelFetch(); - delete mOkAction; - mOkAction = NULL; - delete mCancelAction; - mCancelAction = NULL; } /*! @@ -330,8 +324,7 @@ */ void NmViewerView::messageFetched(int result) { - delete mWaitDialog; - mWaitDialog = NULL; + mWaitDialog->close(); if (result == NmNoError && mMessageFetchingOperation) { if (mMessage) { @@ -367,7 +360,7 @@ mMessageFetchingOperation->cancelOperation(); } mWaitNoteCancelled = true; - QMetaObject::invokeMethod(&mApplication, "popView", Qt::QueuedConnection); + QMetaObject::invokeMethod(&mApplication, "prepareForPopView", Qt::QueuedConnection); } } @@ -1024,16 +1017,9 @@ case NmActionResponseCommandDeleteMail: { HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion); messageBox->setText(hbTrId("txt_mail_dialog_delete_mail")); - messageBox->setTimeout(HbMessageBox::NoTimeout); - - mOkAction = new HbAction(tr("Ok"),messageBox); - mCancelAction = new HbAction(tr("Cancel"),messageBox); - messageBox->addAction(mOkAction); - messageBox->addAction(mCancelAction); - - // Read user selection + messageBox->setAttribute(Qt::WA_DeleteOnClose); messageBox->open(this, SLOT(deleteButton(HbAction*))); - } + } break; default: break; @@ -1057,28 +1043,27 @@ */ void NmViewerView::deleteButton(HbAction* result) { - if (result == mOkAction ) { + HbMessageBox *dlg = static_cast(sender()); + if(result == dlg->actions().at(0)) + { QList messageList; messageList.append(mStartParam->messageId()); - + int err = mUiEngine.deleteMessages(mStartParam->mailboxId(), mStartParam->folderId(), messageList); - + messageList.clear(); if (NmNoError != err) { // Failed to delete the messages! NMLOG(QString("NmViewerView::handleActionCommand(): failed err=%1").arg(err)); } } - - mCancelAction = NULL; - mOkAction = NULL; } /*! - Slot. Signaled when attachment fetch progress changes + This is called when attachment fetch progress changes */ void NmViewerView::progressChanged(int value) { @@ -1091,13 +1076,14 @@ } /*! - Slot. Signaled when attachment fetch is completed + This is called when attachment fetch is completed */ void NmViewerView::fetchCompleted(int result) { if (mAttaWidget && mAttaIndexUnderFetch != NmNotFoundError) { if (result == NmNoError) { progressValueChanged(mAttaIndexUnderFetch, 100); + openAttachment(mAttaIndexUnderFetch); } else { mAttaWidget->hideProgressBar(mAttaIndexUnderFetch); @@ -1116,7 +1102,7 @@ && (mStartParam->mailboxId()== mailboxId) && (mStartParam->folderId()== folderId) && (mStartParam->messageId()== messageId)){ - mApplication.popView(); + mApplication.prepareForPopView(); } } diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/bwins/nmailuiengineu.def --- a/emailuis/nmailuiengine/bwins/nmailuiengineu.def Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/bwins/nmailuiengineu.def Thu May 27 12:43:55 2010 +0300 @@ -1,331 +1,322 @@ EXPORTS - ?insertMessageIntoModel@NmMessageListModel@@AAEXPAVNmMessageEnvelope@@H_N@Z @ 1 NONAME ; void NmMessageListModel::insertMessageIntoModel(class NmMessageEnvelope *, int, bool) - ??0NmUiEngine@@AAE@XZ @ 2 NONAME ; NmUiEngine::NmUiEngine(void) - ?insertDividerIntoModel@NmMessageListModel@@AAEXPAVNmMessageEnvelope@@H@Z @ 3 NONAME ; void NmMessageListModel::insertDividerIntoModel(class NmMessageEnvelope *, int) - ?goOnline@NmUiEngine@@QAEHABVNmId@@@Z @ 4 NONAME ; int NmUiEngine::goOnline(class NmId const &) - ??0NmStoreEnvelopesOperation@@QAE@XZ @ 5 NONAME ; NmStoreEnvelopesOperation::NmStoreEnvelopesOperation(void) - ?currentMailboxId@NmMessageListModel@@QAE?AVNmId@@XZ @ 6 NONAME ; class NmId NmMessageListModel::currentMailboxId(void) - ?folderById@NmDataManager@@QAEPAVNmFolderMetaData@@ABVNmId@@0@Z @ 7 NONAME ; class NmFolderMetaData * NmDataManager::folderById(class NmId const &, class NmId const &) - ?removeAttachment@NmBaseClientPlugin@@QAEXXZ @ 8 NONAME ; void NmBaseClientPlugin::removeAttachment(void) - ?completeOperationPart@NmAddAttachmentsOperation@@QAEXABVQString@@ABVNmId@@H@Z @ 9 NONAME ; void NmAddAttachmentsOperation::completeOperationPart(class QString const &, class NmId const &, int) - ?data@NmMessageSearchListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 10 NONAME ; class QVariant NmMessageSearchListModel::data(class QModelIndex const &, int) const - ?qt_metacast@NmMessageSearchListModel@@UAEPAXPBD@Z @ 11 NONAME ; void * NmMessageSearchListModel::qt_metacast(char const *) - ?releaseInstance@NmUiEngine@@SAXAAPAV1@@Z @ 12 NONAME ; void NmUiEngine::releaseInstance(class NmUiEngine * &) - ?id@NmMailboxMetaData@@QBE?AVNmId@@XZ @ 13 NONAME ; class NmId NmMailboxMetaData::id(void) const - ??1NmMessageCreationOperation@@MAE@XZ @ 14 NONAME ; NmMessageCreationOperation::~NmMessageCreationOperation(void) - ?qt_metacast@NmUiEngine@@UAEPAXPBD@Z @ 15 NONAME ; void * NmUiEngine::qt_metacast(char const *) - ?setName@NmMailboxMetaData@@QAEXABVQString@@@Z @ 16 NONAME ; void NmMailboxMetaData::setName(class QString const &) - ?staticMetaObject@NmStoreEnvelopesOperation@@2UQMetaObject@@B @ 17 NONAME ; struct QMetaObject const NmStoreEnvelopesOperation::staticMetaObject - ?handleMessageEvent@NmUiEngine@@AAEXW4NmMessageEvent@@ABVNmId@@ABV?$QList@VNmId@@@@1@Z @ 18 NONAME ; void NmUiEngine::handleMessageEvent(enum NmMessageEvent, class NmId const &, class QList const &, class NmId const &) - ?tr@NmMessageSearchListModel@@SA?AVQString@@PBD0@Z @ 19 NONAME ; class QString NmMessageSearchListModel::tr(char const *, char const *) - ?isRunning@NmOperation@@QBE_NXZ @ 20 NONAME ; bool NmOperation::isRunning(void) const - ?setPriorityLow@NmBaseClientPlugin@@QAEXXZ @ 21 NONAME ; void NmBaseClientPlugin::setPriorityLow(void) - ?tr@NmMessageCreationOperation@@SA?AVQString@@PBD0H@Z @ 22 NONAME ; class QString NmMessageCreationOperation::tr(char const *, char const *, int) - ?openMessage@NmBaseClientPlugin@@QAEXXZ @ 23 NONAME ; void NmBaseClientPlugin::openMessage(void) - ?getStaticMetaObject@NmMailboxListModel@@SAABUQMetaObject@@XZ @ 24 NONAME ; struct QMetaObject const & NmMailboxListModel::getStaticMetaObject(void) - ?envelope@NmMessageListModelItem@@QBEABVNmMessageEnvelope@@XZ @ 25 NONAME ; class NmMessageEnvelope const & NmMessageListModelItem::envelope(void) const - ?qt_metacall@NmMailboxListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 26 NONAME ; int NmMailboxListModel::qt_metacall(enum QMetaObject::Call, int, void * *) - ?listMailboxIds@NmDataManager@@QAEXAAV?$QList@VNmId@@@@@Z @ 27 NONAME ; void NmDataManager::listMailboxIds(class QList &) - ??0NmDataManager@@QAE@XZ @ 28 NONAME ; NmDataManager::NmDataManager(void) - ?trUtf8@NmAddAttachmentsOperation@@SA?AVQString@@PBD0H@Z @ 29 NONAME ; class QString NmAddAttachmentsOperation::trUtf8(char const *, char const *, int) - ?refresh@NmMailboxListModel@@QAEXAAV?$QList@PAVNmMailbox@@@@@Z @ 30 NONAME ; void NmMailboxListModel::refresh(class QList &) - ?getStaticMetaObject@NmDataManager@@SAABUQMetaObject@@XZ @ 31 NONAME ; struct QMetaObject const & NmDataManager::getStaticMetaObject(void) - ??1NmMessageListModel@@UAE@XZ @ 32 NONAME ; NmMessageListModel::~NmMessageListModel(void) - ?handleCompletedSendOperation@NmUiEngine@@QAEXXZ @ 33 NONAME ; void NmUiEngine::handleCompletedSendOperation(void) - ??_ENmFolderListModel@@UAE@I@Z @ 34 NONAME ; NmFolderListModel::~NmFolderListModel(unsigned int) - ?contentToMessagePart@NmDataManager@@QAEHABVNmId@@00AAVNmMessagePart@@@Z @ 35 NONAME ; int NmDataManager::contentToMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmMessagePart &) - ?setExpanded@NmMessageListModelItem@@QAEX_N@Z @ 36 NONAME ; void NmMessageListModelItem::setExpanded(bool) - ?qt_metacall@NmMessageSearchListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 37 NONAME ; int NmMessageSearchListModel::qt_metacall(enum QMetaObject::Call, int, void * *) - ?staticMetaObject@NmCheckOutboxOperation@@2UQMetaObject@@B @ 38 NONAME ; struct QMetaObject const NmCheckOutboxOperation::staticMetaObject - ?getStaticMetaObject@NmStoreEnvelopesOperation@@SAABUQMetaObject@@XZ @ 39 NONAME ; struct QMetaObject const & NmStoreEnvelopesOperation::getStaticMetaObject(void) - ?setPriorityHigh@NmBaseClientPlugin@@QAEXXZ @ 40 NONAME ; void NmBaseClientPlugin::setPriorityHigh(void) - ??0NmAddAttachmentsOperation@@QAE@XZ @ 41 NONAME ; NmAddAttachmentsOperation::NmAddAttachmentsOperation(void) - ?deleteMessage@NmBaseClientPlugin@@QAEXXZ @ 42 NONAME ; void NmBaseClientPlugin::deleteMessage(void) - ?getStaticMetaObject@NmAddAttachmentsOperation@@SAABUQMetaObject@@XZ @ 43 NONAME ; struct QMetaObject const & NmAddAttachmentsOperation::getStaticMetaObject(void) - ?standardFolderId@NmUiEngine@@QAE?AVNmId@@ABV2@W4NmFolderType@@@Z @ 44 NONAME ; class NmId NmUiEngine::standardFolderId(class NmId const &, enum NmFolderType) - ?settings@NmBaseClientPlugin@@QAEXXZ @ 45 NONAME ; void NmBaseClientPlugin::settings(void) - ?staticMetaObject@NmUiEngine@@2UQMetaObject@@B @ 46 NONAME ; struct QMetaObject const NmUiEngine::staticMetaObject - ?mailboxDeleted@NmUiEngine@@IAEXABVNmId@@@Z @ 47 NONAME ; void NmUiEngine::mailboxDeleted(class NmId const &) - ?getIcon@NmIcons@@SAAAVHbIcon@@W4Icon@1@@Z @ 48 NONAME ; class HbIcon & NmIcons::getIcon(enum NmIcons::Icon) - ?itemType@NmMessageListModelItem@@QBE?AW4NmMessageItemType@1@XZ @ 49 NONAME ; enum NmMessageListModelItem::NmMessageItemType NmMessageListModelItem::itemType(void) const - ?mInstance@NmDataPluginFactory@@0PAV1@A @ 50 NONAME ; class NmDataPluginFactory * NmDataPluginFactory::mInstance - ?data@NmFolderListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 51 NONAME ; class QVariant NmFolderListModel::data(class QModelIndex const &, int) const - ?setName@NmFolderMetaData@@QAEXABVQString@@@Z @ 52 NONAME ; void NmFolderMetaData::setName(class QString const &) - ?mReferenceCount@NmUiEngine@@0HA @ 53 NONAME ; int NmUiEngine::mReferenceCount - ?listFolders@NmDataManager@@QAEXVNmId@@AAV?$QList@PAVNmFolder@@@@@Z @ 54 NONAME ; void NmDataManager::listFolders(class NmId, class QList &) - ?cancelSearch@NmUiEngine@@QAEHABVNmId@@@Z @ 55 NONAME ; int NmUiEngine::cancelSearch(class NmId const &) - ?data@NmMailboxListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 56 NONAME ; class QVariant NmMailboxListModel::data(class QModelIndex const &, int) const - ?metaObject@NmMessageCreationOperation@@UBEPBUQMetaObject@@XZ @ 57 NONAME ; struct QMetaObject const * NmMessageCreationOperation::metaObject(void) const - ?handlePreliminaryOperationFinished@NmOperation@@MAEXXZ @ 58 NONAME ; void NmOperation::handlePreliminaryOperationFinished(void) - ?releaseInstance@NmDataPluginFactory@@SAXAAPAV1@@Z @ 59 NONAME ; void NmDataPluginFactory::releaseInstance(class NmDataPluginFactory * &) - ?createEditorViewCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 60 NONAME ; void NmBaseClientPlugin::createEditorViewCommands(class NmActionRequest const &, class QList &) - ?operationCancelled@NmOperation@@IAEXXZ @ 61 NONAME ; void NmOperation::operationCancelled(void) - ??0NmDataPluginFactory@@AAE@XZ @ 62 NONAME ; NmDataPluginFactory::NmDataPluginFactory(void) - ?refresh@NmBaseClientPlugin@@QAEXXZ @ 63 NONAME ; void NmBaseClientPlugin::refresh(void) - ??1NmFolderMetaData@@UAE@XZ @ 64 NONAME ; NmFolderMetaData::~NmFolderMetaData(void) - ??1NmMessageSendingOperation@@MAE@XZ @ 65 NONAME ; NmMessageSendingOperation::~NmMessageSendingOperation(void) - ?staticMetaObject@NmMessageSearchListModel@@2UQMetaObject@@B @ 66 NONAME ; struct QMetaObject const NmMessageSearchListModel::staticMetaObject - ?name@NmFolderMetaData@@QBE?AVQString@@XZ @ 67 NONAME ; class QString NmFolderMetaData::name(void) const - ??_ENmMessageCreationOperation@@UAE@I@Z @ 68 NONAME ; NmMessageCreationOperation::~NmMessageCreationOperation(unsigned int) - ?sendMail@NmBaseClientPlugin@@QAEXXZ @ 69 NONAME ; void NmBaseClientPlugin::sendMail(void) + ?id@NmMailboxMetaData@@QBE?AVNmId@@XZ @ 1 NONAME ; class NmId NmMailboxMetaData::id(void) const + ??1NmUiEngine@@EAE@XZ @ 2 NONAME ; NmUiEngine::~NmUiEngine(void) + ?staticMetaObject@NmMessageCreationOperation@@2UQMetaObject@@B @ 3 NONAME ; struct QMetaObject const NmMessageCreationOperation::staticMetaObject + ?searchComplete@NmUiEngine@@IAEXXZ @ 4 NONAME ; void NmUiEngine::searchComplete(void) + ?mReferenceCount@NmDataPluginFactory@@0HA @ 5 NONAME ; int NmDataPluginFactory::mReferenceCount + ?sendOperationCompleted@NmUiEngine@@IAEXXZ @ 6 NONAME ; void NmUiEngine::sendOperationCompleted(void) + ?name@NmFolderMetaData@@QBE?AVQString@@XZ @ 7 NONAME ; class QString NmFolderMetaData::name(void) const + ?folderTypeById@NmUiEngine@@QAE?AW4NmFolderType@@VNmId@@0@Z @ 8 NONAME ; enum NmFolderType NmUiEngine::folderTypeById(class NmId, class NmId) + ?envelope@NmMessageListModelItem@@QBEABVNmMessageEnvelope@@XZ @ 9 NONAME ; class NmMessageEnvelope const & NmMessageListModelItem::envelope(void) const + ?setPriorityNormal@NmBaseClientPlugin@@QAEXXZ @ 10 NONAME ; void NmBaseClientPlugin::setPriorityNormal(void) + ?removeMessageFromModel@NmMessageListModel@@AAEXABVNmId@@@Z @ 11 NONAME ; void NmMessageListModel::removeMessageFromModel(class NmId const &) + ??1NmDataManager@@UAE@XZ @ 12 NONAME ; NmDataManager::~NmDataManager(void) + ?dividersActive@NmMessageListModel@@QAE_NXZ @ 13 NONAME ; bool NmMessageListModel::dividersActive(void) + ?createForwardMessage@NmUiEngine@@QAE?AV?$QPointer@VNmMessageCreationOperation@@@@ABVNmId@@0@Z @ 14 NONAME ; class QPointer NmUiEngine::createForwardMessage(class NmId const &, class NmId const &) + ?tr@NmMessageCreationOperation@@SA?AVQString@@PBD0@Z @ 15 NONAME ; class QString NmMessageCreationOperation::tr(char const *, char const *) + ?getStaticMetaObject@NmMailboxListModel@@SAABUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const & NmMailboxListModel::getStaticMetaObject(void) + ?getActions@NmBaseClientPlugin@@UAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 17 NONAME ; void NmBaseClientPlugin::getActions(class NmActionRequest const &, class QList &) + ??_ENmDataPluginFactory@@UAE@I@Z @ 18 NONAME ; NmDataPluginFactory::~NmDataPluginFactory(unsigned int) + ?metaObject@NmOperation@@UBEPBUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const * NmOperation::metaObject(void) const + ?handleMailboxEvent@NmUiEngine@@AAEXW4NmMailboxEvent@@ABV?$QList@VNmId@@@@@Z @ 20 NONAME ; void NmUiEngine::handleMailboxEvent(enum NmMailboxEvent, class QList const &) + ?getStaticMetaObject@NmBaseClientPlugin@@SAABUQMetaObject@@XZ @ 21 NONAME ; struct QMetaObject const & NmBaseClientPlugin::getStaticMetaObject(void) + ?envelopePtr@NmMessageListModelItem@@QAEPAVNmMessageEnvelope@@XZ @ 22 NONAME ; class NmMessageEnvelope * NmMessageListModelItem::envelopePtr(void) + ??0NmOperation@@QAE@XZ @ 23 NONAME ; NmOperation::NmOperation(void) + ?forwardMail@NmBaseClientPlugin@@QAEXXZ @ 24 NONAME ; void NmBaseClientPlugin::forwardMail(void) + ??_ENmMailboxMetaData@@UAE@I@Z @ 25 NONAME ; NmMailboxMetaData::~NmMailboxMetaData(unsigned int) + ?getStaticMetaObject@NmOperation@@SAABUQMetaObject@@XZ @ 26 NONAME ; struct QMetaObject const & NmOperation::getStaticMetaObject(void) + ?completeOperation@NmOperation@@QAEXH@Z @ 27 NONAME ; void NmOperation::completeOperation(int) + ?markAsRead@NmBaseClientPlugin@@QAEXXZ @ 28 NONAME ; void NmBaseClientPlugin::markAsRead(void) + ?completeOperationPart@NmAddAttachmentsOperation@@QAEXABVQString@@ABVNmId@@H@Z @ 29 NONAME ; void NmAddAttachmentsOperation::completeOperationPart(class QString const &, class NmId const &, int) + ?tr@NmOperation@@SA?AVQString@@PBD0H@Z @ 30 NONAME ; class QString NmOperation::tr(char const *, char const *, int) + ?deleteOperation@NmOperation@@AAEXXZ @ 31 NONAME ; void NmOperation::deleteOperation(void) + ?insertMessageIntoModel@NmMessageListModel@@AAEXPAVNmMessageEnvelope@@H_N@Z @ 32 NONAME ; void NmMessageListModel::insertMessageIntoModel(class NmMessageEnvelope *, int, bool) + ?attach@NmBaseClientPlugin@@QAEXXZ @ 33 NONAME ; void NmBaseClientPlugin::attach(void) + ?deleteMessageFromViewerView@NmBaseClientPlugin@@QAEXXZ @ 34 NONAME ; void NmBaseClientPlugin::deleteMessageFromViewerView(void) + ??0NmDataPluginFactory@@AAE@XZ @ 35 NONAME ; NmDataPluginFactory::NmDataPluginFactory(void) + ?setEnvelopes@NmUiEngine@@QAE?AV?$QPointer@VNmStoreEnvelopesOperation@@@@ABVNmId@@0W4NmEnvelopeProperties@@ABV?$QList@PB$$CBVNmMessageEnvelope@@@@@Z @ 36 NONAME ; class QPointer NmUiEngine::setEnvelopes(class NmId const &, class NmId const &, enum NmEnvelopeProperties, class QList const &) + ?getStaticMetaObject@NmMessageListModel@@SAABUQMetaObject@@XZ @ 37 NONAME ; struct QMetaObject const & NmMessageListModel::getStaticMetaObject(void) + ?removeAttachment@NmBaseClientPlugin@@QAEXXZ @ 38 NONAME ; void NmBaseClientPlugin::removeAttachment(void) + ?messageListModel@NmUiEngine@@QAEAAVNmMessageListModel@@ABVNmId@@0@Z @ 39 NONAME ; class NmMessageListModel & NmUiEngine::messageListModel(class NmId const &, class NmId const &) + ?trUtf8@NmStoreEnvelopesOperation@@SA?AVQString@@PBD0H@Z @ 40 NONAME ; class QString NmStoreEnvelopesOperation::trUtf8(char const *, char const *, int) + ?refresh@NmMailboxListModel@@QAEXAAV?$QList@PAVNmMailbox@@@@@Z @ 41 NONAME ; void NmMailboxListModel::refresh(class QList &) + ??0NmMessageListModelItem@@QAE@XZ @ 42 NONAME ; NmMessageListModelItem::NmMessageListModelItem(void) + ??0NmDataManager@@QAE@XZ @ 43 NONAME ; NmDataManager::NmDataManager(void) + ?setItemType@NmMessageListModelItem@@QAEXW4NmMessageItemType@1@@Z @ 44 NONAME ; void NmMessageListModelItem::setItemType(enum NmMessageListModelItem::NmMessageItemType) + ?setEnvelope@NmMessageListModelItem@@QAEXPAVNmMessageEnvelope@@@Z @ 45 NONAME ; void NmMessageListModelItem::setEnvelope(class NmMessageEnvelope *) + ?qt_metacall@NmMessageListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 46 NONAME ; int NmMessageListModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?updateMessageEnvelope@NmMessageListModel@@AAEXABVNmId@@00@Z @ 47 NONAME ; void NmMessageListModel::updateMessageEnvelope(class NmId const &, class NmId const &, class NmId const &) + ?tr@NmMailboxListModel@@SA?AVQString@@PBD0H@Z @ 48 NONAME ; class QString NmMailboxListModel::tr(char const *, char const *, int) + ??0NmStoreEnvelopesOperation@@QAE@XZ @ 49 NONAME ; NmStoreEnvelopesOperation::NmStoreEnvelopesOperation(void) + ?fetchMessage@NmUiEngine@@QAE?AV?$QPointer@VNmOperation@@@@ABVNmId@@00@Z @ 50 NONAME ; class QPointer NmUiEngine::fetchMessage(class NmId const &, class NmId const &, class NmId const &) + ?removeItem@NmMessageListModel@@AAEXHAAVNmMessageListModelItem@@@Z @ 51 NONAME ; void NmMessageListModel::removeItem(int, class NmMessageListModelItem &) + ?createMessageListCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 52 NONAME ; void NmBaseClientPlugin::createMessageListCommands(class NmActionRequest const &, class QList &) + ?qt_metacast@NmMailboxListModel@@UAEPAXPBD@Z @ 53 NONAME ; void * NmMailboxListModel::qt_metacast(char const *) + ??_ENmOperation@@UAE@I@Z @ 54 NONAME ; NmOperation::~NmOperation(unsigned int) + ??_ENmBaseClientPlugin@@UAE@I@Z @ 55 NONAME ; NmBaseClientPlugin::~NmBaseClientPlugin(unsigned int) + ??1NmOperation@@MAE@XZ @ 56 NONAME ; NmOperation::~NmOperation(void) + ??0NmFolderListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 57 NONAME ; NmFolderListModel::NmFolderListModel(class NmDataManager &, class QObject *) + ?getStaticMetaObject@NmMessageCreationOperation@@SAABUQMetaObject@@XZ @ 58 NONAME ; struct QMetaObject const & NmMessageCreationOperation::getStaticMetaObject(void) + ?refresh@NmMessageListModel@@QAEXVNmId@@0ABV?$QList@PAVNmMessageEnvelope@@@@@Z @ 59 NONAME ; void NmMessageListModel::refresh(class NmId, class NmId, class QList const &) + ?message@NmDataManager@@QAEPAVNmMessage@@ABVNmId@@00@Z @ 60 NONAME ; class NmMessage * NmDataManager::message(class NmId const &, class NmId const &, class NmId const &) + ?data@NmFolderListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 61 NONAME ; class QVariant NmFolderListModel::data(class QModelIndex const &, int) const + ?metaObject@NmMessageListModel@@UBEPBUQMetaObject@@XZ @ 62 NONAME ; struct QMetaObject const * NmMessageListModel::metaObject(void) const + ??1NmMessageListModel@@UAE@XZ @ 63 NONAME ; NmMessageListModel::~NmMessageListModel(void) + ?handlePreliminaryOperationFinished@NmOperation@@MAEXXZ @ 64 NONAME ; void NmOperation::handlePreliminaryOperationFinished(void) + ?rowCount@NmFolderListModel@@UBEHABVQModelIndex@@@Z @ 65 NONAME ; int NmFolderListModel::rowCount(class QModelIndex const &) const + ?syncState@NmUiEngine@@QAE?AW4NmSyncState@@ABVNmId@@@Z @ 66 NONAME ; enum NmSyncState NmUiEngine::syncState(class NmId const &) + ?isRunning@NmOperation@@QBE_NXZ @ 67 NONAME ; bool NmOperation::isRunning(void) const + ?tr@NmAddAttachmentsOperation@@SA?AVQString@@PBD0H@Z @ 68 NONAME ; class QString NmAddAttachmentsOperation::tr(char const *, char const *, int) + ?trUtf8@NmUiEngine@@SA?AVQString@@PBD0@Z @ 69 NONAME ; class QString NmUiEngine::trUtf8(char const *, char const *) ?insertNewMessageIntoModel@NmMessageListModel@@AAEXABVNmId@@00@Z @ 70 NONAME ; void NmMessageListModel::insertNewMessageIntoModel(class NmId const &, class NmId const &, class NmId const &) - ?getStaticMetaObject@NmUiEngine@@SAABUQMetaObject@@XZ @ 71 NONAME ; struct QMetaObject const & NmUiEngine::getStaticMetaObject(void) - ?metaObject@NmMessageListModel@@UBEPBUQMetaObject@@XZ @ 72 NONAME ; struct QMetaObject const * NmMessageListModel::metaObject(void) const - ?messageBeingSent@NmUiEngine@@QBEPBVNmMessage@@XZ @ 73 NONAME ; class NmMessage const * NmUiEngine::messageBeingSent(void) const - ?handleMailboxEvent@NmUiEngine@@AAEXW4NmMailboxEvent@@ABV?$QList@VNmId@@@@@Z @ 74 NONAME ; void NmUiEngine::handleMailboxEvent(enum NmMailboxEvent, class QList const &) - ?interfaceInstance@NmDataPluginFactory@@QAEPAVNmDataPluginInterface@@VNmId@@@Z @ 75 NONAME ; class NmDataPluginInterface * NmDataPluginFactory::interfaceInstance(class NmId) - ?trUtf8@NmMessageSearchListModel@@SA?AVQString@@PBD0@Z @ 76 NONAME ; class QString NmMessageSearchListModel::trUtf8(char const *, char const *) - ?goOffline@NmBaseClientPlugin@@AAEXABVNmId@@@Z @ 77 NONAME ; void NmBaseClientPlugin::goOffline(class NmId const &) - ?sendMessage@NmUiEngine@@QAEXPAVNmMessage@@ABV?$QList@PAVNmOperation@@@@@Z @ 78 NONAME ; void NmUiEngine::sendMessage(class NmMessage *, class QList const &) - ?tr@NmDataManager@@SA?AVQString@@PBD0H@Z @ 79 NONAME ; class QString NmDataManager::tr(char const *, char const *, int) - ??0NmMailboxListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 80 NONAME ; NmMailboxListModel::NmMailboxListModel(class NmDataManager &, class QObject *) - ?trUtf8@NmCheckOutboxOperation@@SA?AVQString@@PBD0@Z @ 81 NONAME ; class QString NmCheckOutboxOperation::trUtf8(char const *, char const *) - ?setPriorityNormal@NmBaseClientPlugin@@QAEXXZ @ 82 NONAME ; void NmBaseClientPlugin::setPriorityNormal(void) - ??_ENmMessageSendingOperation@@UAE@I@Z @ 83 NONAME ; NmMessageSendingOperation::~NmMessageSendingOperation(unsigned int) - ?changed@NmMessageListModel@@AAE_NABVNmMessageEnvelope@@0@Z @ 84 NONAME ; bool NmMessageListModel::changed(class NmMessageEnvelope const &, class NmMessageEnvelope const &) - ?openAttachment@NmBaseClientPlugin@@QAEXXZ @ 85 NONAME ; void NmBaseClientPlugin::openAttachment(void) - ?staticMetaObject@NmMessageCreationOperation@@2UQMetaObject@@B @ 86 NONAME ; struct QMetaObject const NmMessageCreationOperation::staticMetaObject - ?handleMailboxEvent@NmMailboxListModel@@QAEXW4NmMailboxEvent@@ABV?$QList@VNmId@@@@@Z @ 87 NONAME ; void NmMailboxListModel::handleMailboxEvent(enum NmMailboxEvent, class QList const &) - ?metaObject@NmStoreEnvelopesOperation@@UBEPBUQMetaObject@@XZ @ 88 NONAME ; struct QMetaObject const * NmStoreEnvelopesOperation::metaObject(void) const - ?trUtf8@NmMailboxListModel@@SA?AVQString@@PBD0H@Z @ 89 NONAME ; class QString NmMailboxListModel::trUtf8(char const *, char const *, int) - ?mPluginArray@NmDataPluginFactory@@0PAV?$QList@PAVQObject@@@@A @ 90 NONAME ; class QList * NmDataPluginFactory::mPluginArray - ?instance@NmDataPluginFactory@@SAPAV1@XZ @ 91 NONAME ; class NmDataPluginFactory * NmDataPluginFactory::instance(void) - ?getStaticMetaObject@NmMessageListModel@@SAABUQMetaObject@@XZ @ 92 NONAME ; struct QMetaObject const & NmMessageListModel::getStaticMetaObject(void) - ?deleteMessageFromViewerView@NmBaseClientPlugin@@QAEXXZ @ 93 NONAME ; void NmBaseClientPlugin::deleteMessageFromViewerView(void) - ?tr@NmUiEngine@@SA?AVQString@@PBD0H@Z @ 94 NONAME ; class QString NmUiEngine::tr(char const *, char const *, int) - ?refresh@NmMessageListModel@@QAEXVNmId@@0ABV?$QList@PAVNmMessageEnvelope@@@@@Z @ 95 NONAME ; void NmMessageListModel::refresh(class NmId, class NmId, class QList const &) - ?mailboxById@NmUiEngine@@QAEPAVNmMailboxMetaData@@ABVNmId@@@Z @ 96 NONAME ; class NmMailboxMetaData * NmUiEngine::mailboxById(class NmId const &) - ?createNewMessage@NmUiEngine@@QAE?AV?$QPointer@VNmMessageCreationOperation@@@@ABVNmId@@@Z @ 97 NONAME ; class QPointer NmUiEngine::createNewMessage(class NmId const &) - ?tr@NmCheckOutboxOperation@@SA?AVQString@@PBD0@Z @ 98 NONAME ; class QString NmCheckOutboxOperation::tr(char const *, char const *) - ??_ENmMessageListModelItem@@UAE@I@Z @ 99 NONAME ; NmMessageListModelItem::~NmMessageListModelItem(unsigned int) - ?replyAllMail@NmBaseClientPlugin@@QAEXXZ @ 100 NONAME ; void NmBaseClientPlugin::replyAllMail(void) - ?syncStateEvent@NmUiEngine@@IAEXW4NmSyncState@@ABVNmId@@@Z @ 101 NONAME ; void NmUiEngine::syncStateEvent(enum NmSyncState, class NmId const &) - ?trUtf8@NmDataManager@@SA?AVQString@@PBD0@Z @ 102 NONAME ; class QString NmDataManager::trUtf8(char const *, char const *) - ?setEnvelopeProperties@NmMessageListModel@@QAEXW4NmEnvelopeProperties@@ABV?$QList@VNmId@@@@@Z @ 103 NONAME ; void NmMessageListModel::setEnvelopeProperties(enum NmEnvelopeProperties, class QList const &) - ??1NmStoreEnvelopesOperation@@MAE@XZ @ 104 NONAME ; NmStoreEnvelopesOperation::~NmStoreEnvelopesOperation(void) - ?tr@NmUiEngine@@SA?AVQString@@PBD0@Z @ 105 NONAME ; class QString NmUiEngine::tr(char const *, char const *) - ?mPluginLoaderArray@NmDataPluginFactory@@0V?$QList@PAVQPluginLoader@@@@A @ 106 NONAME ; class QList NmDataPluginFactory::mPluginLoaderArray - ?trUtf8@NmBaseClientPlugin@@SA?AVQString@@PBD0@Z @ 107 NONAME ; class QString NmBaseClientPlugin::trUtf8(char const *, char const *) - ?deleteOperation@NmOperation@@AAEXXZ @ 108 NONAME ; void NmOperation::deleteOperation(void) - ?trUtf8@NmBaseClientPlugin@@SA?AVQString@@PBD0H@Z @ 109 NONAME ; class QString NmBaseClientPlugin::trUtf8(char const *, char const *, int) - ?createViewerViewCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 110 NONAME ; void NmBaseClientPlugin::createViewerViewCommands(class NmActionRequest const &, class QList &) - ?fetchMessagePart@NmUiEngine@@QAE?AV?$QPointer@VNmOperation@@@@ABVNmId@@000@Z @ 111 NONAME ; class QPointer NmUiEngine::fetchMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmId const &) - ?tr@NmMailboxListModel@@SA?AVQString@@PBD0H@Z @ 112 NONAME ; class QString NmMailboxListModel::tr(char const *, char const *, int) - ?trUtf8@NmUiEngine@@SA?AVQString@@PBD0H@Z @ 113 NONAME ; class QString NmUiEngine::trUtf8(char const *, char const *, int) - ?createMailboxItem@NmMailboxListModel@@AAEPAVNmMailboxListModelItem@@PBVNmMailbox@@@Z @ 114 NONAME ; class NmMailboxListModelItem * NmMailboxListModel::createMailboxItem(class NmMailbox const *) - ?setTitleDivider@NmMessageListModelItem@@QAEXABVQString@@@Z @ 115 NONAME ; void NmMessageListModelItem::setTitleDivider(class QString const &) - ?markAsRead@NmBaseClientPlugin@@QAEXXZ @ 116 NONAME ; void NmBaseClientPlugin::markAsRead(void) - ?getInsertionIndex@NmMessageListModel@@ABEHABVNmMessageEnvelope@@@Z @ 117 NONAME ; int NmMessageListModel::getInsertionIndex(class NmMessageEnvelope const &) const - ?updateOperationProgress@NmOperation@@QAEXH@Z @ 118 NONAME ; void NmOperation::updateOperationProgress(int) - ??1NmFolderListModel@@UAE@XZ @ 119 NONAME ; NmFolderListModel::~NmFolderListModel(void) - ?operationCompleted@NmUiEngine@@IAEXABVNmOperationCompletionEvent@@@Z @ 120 NONAME ; void NmUiEngine::operationCompleted(class NmOperationCompletionEvent const &) - ??1NmDataManager@@UAE@XZ @ 121 NONAME ; NmDataManager::~NmDataManager(void) - ?trUtf8@NmStoreEnvelopesOperation@@SA?AVQString@@PBD0@Z @ 122 NONAME ; class QString NmStoreEnvelopesOperation::trUtf8(char const *, char const *) - ?metaObject@NmMessageSearchListModel@@UBEPBUQMetaObject@@XZ @ 123 NONAME ; struct QMetaObject const * NmMessageSearchListModel::metaObject(void) const - ??0NmMessageSearchListModel@@QAE@PAVQObject@@@Z @ 124 NONAME ; NmMessageSearchListModel::NmMessageSearchListModel(class QObject *) - ?getStaticMetaObject@NmMessageCreationOperation@@SAABUQMetaObject@@XZ @ 125 NONAME ; struct QMetaObject const & NmMessageCreationOperation::getStaticMetaObject(void) - ?trUtf8@NmAddAttachmentsOperation@@SA?AVQString@@PBD0@Z @ 126 NONAME ; class QString NmAddAttachmentsOperation::trUtf8(char const *, char const *) - ?name@NmMailboxMetaData@@QBE?AVQString@@XZ @ 127 NONAME ; class QString NmMailboxMetaData::name(void) const - ?qt_metacall@NmDataManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 128 NONAME ; int NmDataManager::qt_metacall(enum QMetaObject::Call, int, void * *) - ??1NmMessageSearchListModel@@UAE@XZ @ 129 NONAME ; NmMessageSearchListModel::~NmMessageSearchListModel(void) - ?runAsyncOperation@NmOperation@@MAEXXZ @ 130 NONAME ; void NmOperation::runAsyncOperation(void) - ??0NmFolderListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 131 NONAME ; NmFolderListModel::NmFolderListModel(class NmDataManager &, class QObject *) - ?getStaticMetaObject@NmCheckOutboxOperation@@SAABUQMetaObject@@XZ @ 132 NONAME ; struct QMetaObject const & NmCheckOutboxOperation::getStaticMetaObject(void) - ?metaObject@NmCheckOutboxOperation@@UBEPBUQMetaObject@@XZ @ 133 NONAME ; struct QMetaObject const * NmCheckOutboxOperation::metaObject(void) const - ?tr@NmBaseClientPlugin@@SA?AVQString@@PBD0H@Z @ 134 NONAME ; class QString NmBaseClientPlugin::tr(char const *, char const *, int) - ??0NmMailboxMetaData@@QAE@XZ @ 135 NONAME ; NmMailboxMetaData::NmMailboxMetaData(void) - ?setEnvelope@NmMessageListModelItem@@QAEXPAVNmMessageEnvelope@@@Z @ 136 NONAME ; void NmMessageListModelItem::setEnvelope(class NmMessageEnvelope *) - ?saveMessage@NmUiEngine@@QAEHABVNmMessage@@@Z @ 137 NONAME ; int NmUiEngine::saveMessage(class NmMessage const &) - ?setId@NmMailboxMetaData@@QAEXABVNmId@@@Z @ 138 NONAME ; void NmMailboxMetaData::setId(class NmId const &) - ?mReferenceCount@NmDataPluginFactory@@0HA @ 139 NONAME ; int NmDataPluginFactory::mReferenceCount - ?tr@NmOperation@@SA?AVQString@@PBD0@Z @ 140 NONAME ; class QString NmOperation::tr(char const *, char const *) - ?qt_metacast@NmCheckOutboxOperation@@UAEPAXPBD@Z @ 141 NONAME ; void * NmCheckOutboxOperation::qt_metacast(char const *) - ?clearSearchResults@NmMessageSearchListModel@@QAEXXZ @ 142 NONAME ; void NmMessageSearchListModel::clearSearchResults(void) - ?updateMessageEnvelope@NmMessageListModel@@AAEXABVNmId@@00@Z @ 143 NONAME ; void NmMessageListModel::updateMessageEnvelope(class NmId const &, class NmId const &, class NmId const &) - ?filterAcceptsRow@NmMessageSearchListModel@@MBE_NHABVQModelIndex@@@Z @ 144 NONAME ; bool NmMessageSearchListModel::filterAcceptsRow(int, class QModelIndex const &) const - ?messageSearchListModel@NmUiEngine@@QAEAAVNmMessageSearchListModel@@PAVQAbstractItemModel@@@Z @ 145 NONAME ; class NmMessageSearchListModel & NmUiEngine::messageSearchListModel(class QAbstractItemModel *) - ?tr@NmStoreEnvelopesOperation@@SA?AVQString@@PBD0@Z @ 146 NONAME ; class QString NmStoreEnvelopesOperation::tr(char const *, char const *) - ?messagesBelongUnderSameDivider@NmMessageListModel@@ABE_NPBVNmMessageEnvelope@@0@Z @ 147 NONAME ; bool NmMessageListModel::messagesBelongUnderSameDivider(class NmMessageEnvelope const *, class NmMessageEnvelope const *) const - ?checkOutbox@NmUiEngine@@QAE?AV?$QPointer@VNmCheckOutboxOperation@@@@ABVNmId@@@Z @ 148 NONAME ; class QPointer NmUiEngine::checkOutbox(class NmId const &) - ?metaObject@NmDataManager@@UBEPBUQMetaObject@@XZ @ 149 NONAME ; struct QMetaObject const * NmDataManager::metaObject(void) const - ?isSendingMessage@NmUiEngine@@QBE_NXZ @ 150 NONAME ; bool NmUiEngine::isSendingMessage(void) const - ?freeIcons@NmIcons@@SAXXZ @ 151 NONAME ; void NmIcons::freeIcons(void) - ?tr@NmAddAttachmentsOperation@@SA?AVQString@@PBD0@Z @ 152 NONAME ; class QString NmAddAttachmentsOperation::tr(char const *, char const *) - ?itemFromModel@NmMessageListModel@@AAEPAVNmMessageListModelItem@@ABVNmId@@@Z @ 153 NONAME ; class NmMessageListModelItem * NmMessageListModel::itemFromModel(class NmId const &) - ?instance@NmUiEngine@@SAPAV1@XZ @ 154 NONAME ; class NmUiEngine * NmUiEngine::instance(void) - ?createMessageListCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 155 NONAME ; void NmBaseClientPlugin::createMessageListCommands(class NmActionRequest const &, class QList &) - ?updateEnvelopeProperty@NmBaseClientPlugin@@AAEXW4NmEnvelopeProperties@@@Z @ 156 NONAME ; void NmBaseClientPlugin::updateEnvelopeProperty(enum NmEnvelopeProperties) - ??1NmAddAttachmentsOperation@@MAE@XZ @ 157 NONAME ; NmAddAttachmentsOperation::~NmAddAttachmentsOperation(void) - ?goOffline@NmUiEngine@@QAEHABVNmId@@@Z @ 158 NONAME ; int NmUiEngine::goOffline(class NmId const &) - ?staticMetaObject@NmDataManager@@2UQMetaObject@@B @ 159 NONAME ; struct QMetaObject const NmDataManager::staticMetaObject - ?mInstance@NmUiEngine@@0PAV1@A @ 160 NONAME ; class NmUiEngine * NmUiEngine::mInstance - ?attach@NmBaseClientPlugin@@QAEXXZ @ 161 NONAME ; void NmBaseClientPlugin::attach(void) - ?metaObject@NmAddAttachmentsOperation@@UBEPBUQMetaObject@@XZ @ 162 NONAME ; struct QMetaObject const * NmAddAttachmentsOperation::metaObject(void) const - ?refresh@NmFolderListModel@@QAEXAAV?$QList@PAVNmFolder@@@@@Z @ 163 NONAME ; void NmFolderListModel::refresh(class QList &) - ?qt_metacall@NmCheckOutboxOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 164 NONAME ; int NmCheckOutboxOperation::qt_metacall(enum QMetaObject::Call, int, void * *) - ?trUtf8@NmMailboxListModel@@SA?AVQString@@PBD0@Z @ 165 NONAME ; class QString NmMailboxListModel::trUtf8(char const *, char const *) - ?envelopeById@NmDataManager@@QAEPAVNmMessageEnvelope@@ABVNmId@@00@Z @ 166 NONAME ; class NmMessageEnvelope * NmDataManager::envelopeById(class NmId const &, class NmId const &, class NmId const &) - ?getStaticMetaObject@NmOperation@@SAABUQMetaObject@@XZ @ 167 NONAME ; struct QMetaObject const & NmOperation::getStaticMetaObject(void) - ?trUtf8@NmOperation@@SA?AVQString@@PBD0@Z @ 168 NONAME ; class QString NmOperation::trUtf8(char const *, char const *) - ?addAttachments@NmUiEngine@@QAE?AV?$QPointer@VNmAddAttachmentsOperation@@@@ABVNmMessage@@ABV?$QList@VQString@@@@@Z @ 169 NONAME ; class QPointer NmUiEngine::addAttachments(class NmMessage const &, class QList const &) - ?doCancelOperation@NmOperation@@MAEXXZ @ 170 NONAME ; void NmOperation::doCancelOperation(void) - ?tr@NmOperation@@SA?AVQString@@PBD0H@Z @ 171 NONAME ; class QString NmOperation::tr(char const *, char const *, int) - ??_ENmOperation@@UAE@I@Z @ 172 NONAME ; NmOperation::~NmOperation(unsigned int) - ?tr@NmMessageCreationOperation@@SA?AVQString@@PBD0@Z @ 173 NONAME ; class QString NmMessageCreationOperation::tr(char const *, char const *) - ?qt_metacall@NmMessageListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 174 NONAME ; int NmMessageListModel::qt_metacall(enum QMetaObject::Call, int, void * *) - ?staticMetaObject@NmOperation@@2UQMetaObject@@B @ 175 NONAME ; struct QMetaObject const NmOperation::staticMetaObject - ??1NmUiEngine@@EAE@XZ @ 176 NONAME ; NmUiEngine::~NmUiEngine(void) - ?messagePartFile@NmUiEngine@@QAE?AVXQSharableFile@@ABVNmId@@000@Z @ 177 NONAME ; class XQSharableFile NmUiEngine::messagePartFile(class NmId const &, class NmId const &, class NmId const &, class NmId const &) - ??_ENmMessageListModel@@UAE@I@Z @ 178 NONAME ; NmMessageListModel::~NmMessageListModel(unsigned int) - ?addPreliminaryOperation@NmOperation@@QAEXPAV1@@Z @ 179 NONAME ; void NmOperation::addPreliminaryOperation(class NmOperation *) - ?deleteMessages@NmUiEngine@@QAEHABVNmId@@0ABV?$QList@VNmId@@@@@Z @ 180 NONAME ; int NmUiEngine::deleteMessages(class NmId const &, class NmId const &, class QList const &) - ??_ENmStoreEnvelopesOperation@@UAE@I@Z @ 181 NONAME ; NmStoreEnvelopesOperation::~NmStoreEnvelopesOperation(unsigned int) - ?mailboxById@NmDataManager@@QAEPAVNmMailboxMetaData@@ABVNmId@@@Z @ 182 NONAME ; class NmMailboxMetaData * NmDataManager::mailboxById(class NmId const &) - ?search@NmBaseClientPlugin@@QAEXXZ @ 183 NONAME ; void NmBaseClientPlugin::search(void) - ?pluginInstances@NmDataPluginFactory@@QAEPAV?$QList@PAVQObject@@@@XZ @ 184 NONAME ; class QList * NmDataPluginFactory::pluginInstances(void) - ?tr@NmBaseClientPlugin@@SA?AVQString@@PBD0@Z @ 185 NONAME ; class QString NmBaseClientPlugin::tr(char const *, char const *) - ?listMessages@NmDataManager@@QAEXABVNmId@@0AAV?$QList@PAVNmMessageEnvelope@@@@@Z @ 186 NONAME ; void NmDataManager::listMessages(class NmId const &, class NmId const &, class QList &) - ?getStaticMetaObject@NmMessageSearchListModel@@SAABUQMetaObject@@XZ @ 187 NONAME ; struct QMetaObject const & NmMessageSearchListModel::getStaticMetaObject(void) - ??1NmBaseClientPlugin@@UAE@XZ @ 188 NONAME ; NmBaseClientPlugin::~NmBaseClientPlugin(void) - ?qt_metacast@NmDataManager@@UAEPAXPBD@Z @ 189 NONAME ; void * NmDataManager::qt_metacast(char const *) - ??0NmMessageCreationOperation@@QAE@XZ @ 190 NONAME ; NmMessageCreationOperation::NmMessageCreationOperation(void) - ?qt_metacall@NmBaseClientPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 191 NONAME ; int NmBaseClientPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) - ?envelopePtr@NmMessageListModelItem@@QAEPAVNmMessageEnvelope@@XZ @ 192 NONAME ; class NmMessageEnvelope * NmMessageListModelItem::envelopePtr(void) - ?messageListModel@NmUiEngine@@QAEAAVNmMessageListModel@@ABVNmId@@0@Z @ 193 NONAME ; class NmMessageListModel & NmUiEngine::messageListModel(class NmId const &, class NmId const &) - ??1NmMailboxMetaData@@UAE@XZ @ 194 NONAME ; NmMailboxMetaData::~NmMailboxMetaData(void) - ?trUtf8@NmCheckOutboxOperation@@SA?AVQString@@PBD0H@Z @ 195 NONAME ; class QString NmCheckOutboxOperation::trUtf8(char const *, char const *, int) - ??0NmCheckOutboxOperation@@QAE@XZ @ 196 NONAME ; NmCheckOutboxOperation::NmCheckOutboxOperation(void) - ?connectionEvent@NmUiEngine@@IAEXW4NmConnectState@@ABVNmId@@@Z @ 197 NONAME ; void NmUiEngine::connectionEvent(enum NmConnectState, class NmId const &) - ?mailbox@NmDataManager@@QAEPAVNmMailbox@@ABVNmId@@@Z @ 198 NONAME ; class NmMailbox * NmDataManager::mailbox(class NmId const &) - ?interfaceInstance@NmDataPluginFactory@@QAEPAVNmDataPluginInterface@@PAVQObject@@@Z @ 199 NONAME ; class NmDataPluginInterface * NmDataPluginFactory::interfaceInstance(class QObject *) - ?refreshModelItem@NmMailboxListModel@@QAEXABVNmId@@_N@Z @ 200 NONAME ; void NmMailboxListModel::refreshModelItem(class NmId const &, bool) - ?metaObject@NmMailboxListModel@@UBEPBUQMetaObject@@XZ @ 201 NONAME ; struct QMetaObject const * NmMailboxListModel::metaObject(void) const - ?IconId@NmMailboxMetaData@@QBE?AVNmId@@XZ @ 202 NONAME ; class NmId NmMailboxMetaData::IconId(void) const - ?sendOperationCompleted@NmUiEngine@@IAEXXZ @ 203 NONAME ; void NmUiEngine::sendOperationCompleted(void) - ??0NmFolderMetaData@@QAE@XZ @ 204 NONAME ; NmFolderMetaData::NmFolderMetaData(void) - ?staticMetaObject@NmAddAttachmentsOperation@@2UQMetaObject@@B @ 205 NONAME ; struct QMetaObject const NmAddAttachmentsOperation::staticMetaObject - ?connectionState@NmUiEngine@@QAE?AW4NmConnectState@@ABVNmId@@@Z @ 206 NONAME ; enum NmConnectState NmUiEngine::connectionState(class NmId const &) - ?createTitleDividerItem@NmMessageListModel@@AAEPAVNmMessageListModelItem@@PAVNmMessageEnvelope@@@Z @ 207 NONAME ; class NmMessageListModelItem * NmMessageListModel::createTitleDividerItem(class NmMessageEnvelope *) - ?setId@NmFolderMetaData@@QAEXABVNmId@@@Z @ 208 NONAME ; void NmFolderMetaData::setId(class NmId const &) - ??0NmOperation@@QAE@XZ @ 209 NONAME ; NmOperation::NmOperation(void) - ?cancelOperation@NmOperation@@QAEXXZ @ 210 NONAME ; void NmOperation::cancelOperation(void) - ??_ENmFolderMetaData@@UAE@I@Z @ 211 NONAME ; NmFolderMetaData::~NmFolderMetaData(unsigned int) - ?qt_metacast@NmMessageListModel@@UAEPAXPBD@Z @ 212 NONAME ; void * NmMessageListModel::qt_metacast(char const *) - ?operationProgressChanged@NmOperation@@IAEXH@Z @ 213 NONAME ; void NmOperation::operationProgressChanged(int) - ?trUtf8@NmOperation@@SA?AVQString@@PBD0H@Z @ 214 NONAME ; class QString NmOperation::trUtf8(char const *, char const *, int) - ??_ENmMailboxListModel@@UAE@I@Z @ 215 NONAME ; NmMailboxListModel::~NmMailboxListModel(unsigned int) - ?messageDeleted@NmUiEngine@@IAEXABVNmId@@00@Z @ 216 NONAME ; void NmUiEngine::messageDeleted(class NmId const &, class NmId const &, class NmId const &) - ?trUtf8@NmMessageCreationOperation@@SA?AVQString@@PBD0@Z @ 217 NONAME ; class QString NmMessageCreationOperation::trUtf8(char const *, char const *) - ?metaObject@NmUiEngine@@UBEPBUQMetaObject@@XZ @ 218 NONAME ; struct QMetaObject const * NmUiEngine::metaObject(void) const - ??_ENmBaseClientPlugin@@UAE@I@Z @ 219 NONAME ; NmBaseClientPlugin::~NmBaseClientPlugin(unsigned int) - ?markAsUnread@NmBaseClientPlugin@@QAEXXZ @ 220 NONAME ; void NmBaseClientPlugin::markAsUnread(void) - ?metaObject@NmBaseClientPlugin@@UBEPBUQMetaObject@@XZ @ 221 NONAME ; struct QMetaObject const * NmBaseClientPlugin::metaObject(void) const - ?tr@NmDataManager@@SA?AVQString@@PBD0@Z @ 222 NONAME ; class QString NmDataManager::tr(char const *, char const *) - ?mailboxListModel@NmUiEngine@@QAEAAVNmMailboxListModel@@XZ @ 223 NONAME ; class NmMailboxListModel & NmUiEngine::mailboxListModel(void) - ?fetchMessage@NmUiEngine@@QAE?AV?$QPointer@VNmOperation@@@@ABVNmId@@00@Z @ 224 NONAME ; class QPointer NmUiEngine::fetchMessage(class NmId const &, class NmId const &, class NmId const &) - ?setIconId@NmMailboxMetaData@@QAEXABVNmId@@@Z @ 225 NONAME ; void NmMailboxMetaData::setIconId(class NmId const &) - ??1NmDataPluginFactory@@EAE@XZ @ 226 NONAME ; NmDataPluginFactory::~NmDataPluginFactory(void) - ?refreshMailboxListModel@NmUiEngine@@QAEXXZ @ 227 NONAME ; void NmUiEngine::refreshMailboxListModel(void) - ?qt_metacall@NmStoreEnvelopesOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 228 NONAME ; int NmStoreEnvelopesOperation::qt_metacall(enum QMetaObject::Call, int, void * *) - ?trUtf8@NmMessageListModel@@SA?AVQString@@PBD0@Z @ 229 NONAME ; class QString NmMessageListModel::trUtf8(char const *, char const *) - ?rowCount@NmFolderListModel@@UBEHABVQModelIndex@@@Z @ 230 NONAME ; int NmFolderListModel::rowCount(class QModelIndex const &) const - ?doUpdateOperationProgress@NmOperation@@MAEXXZ @ 231 NONAME ; void NmOperation::doUpdateOperationProgress(void) - ?tr@NmMailboxListModel@@SA?AVQString@@PBD0@Z @ 232 NONAME ; class QString NmMailboxListModel::tr(char const *, char const *) - ?removeMessage@NmUiEngine@@QAEHABVNmId@@00@Z @ 233 NONAME ; int NmUiEngine::removeMessage(class NmId const &, class NmId const &, class NmId const &) - ??_ENmUiEngine@@UAE@I@Z @ 234 NONAME ; NmUiEngine::~NmUiEngine(unsigned int) - ??_ENmMessageSearchListModel@@UAE@I@Z @ 235 NONAME ; NmMessageSearchListModel::~NmMessageSearchListModel(unsigned int) - ?operationCompleted@NmOperation@@IAEXH@Z @ 236 NONAME ; void NmOperation::operationCompleted(int) - ?callEmitDataChanged@NmMessageListModelItem@@QAEXXZ @ 237 NONAME ; void NmMessageListModelItem::callEmitDataChanged(void) - ?matchFound@NmUiEngine@@IAEXABVNmId@@@Z @ 238 NONAME ; void NmUiEngine::matchFound(class NmId const &) - ?tr@NmCheckOutboxOperation@@SA?AVQString@@PBD0H@Z @ 239 NONAME ; class QString NmCheckOutboxOperation::tr(char const *, char const *, int) - ?addSearchResult@NmMessageSearchListModel@@QAE_NABVNmId@@@Z @ 240 NONAME ; bool NmMessageSearchListModel::addSearchResult(class NmId const &) - ??0NmMessageListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 241 NONAME ; NmMessageListModel::NmMessageListModel(class NmDataManager &, class QObject *) - ??_ENmAddAttachmentsOperation@@UAE@I@Z @ 242 NONAME ; NmAddAttachmentsOperation::~NmAddAttachmentsOperation(unsigned int) - ?syncState@NmUiEngine@@QAE?AW4NmSyncState@@ABVNmId@@@Z @ 243 NONAME ; enum NmSyncState NmUiEngine::syncState(class NmId const &) - ??1NmOperation@@MAE@XZ @ 244 NONAME ; NmOperation::~NmOperation(void) - ?tr@NmStoreEnvelopesOperation@@SA?AVQString@@PBD0H@Z @ 245 NONAME ; class QString NmStoreEnvelopesOperation::tr(char const *, char const *, int) - ?listMailboxes@NmDataManager@@QAEXAAV?$QList@PAVNmMailbox@@@@@Z @ 246 NONAME ; void NmDataManager::listMailboxes(class QList &) - ?message@NmUiEngine@@QAEPAVNmMessage@@ABVNmId@@00@Z @ 247 NONAME ; class NmMessage * NmUiEngine::message(class NmId const &, class NmId const &, class NmId const &) - ?refreshMailbox@NmUiEngine@@QAEHABVNmId@@@Z @ 248 NONAME ; int NmUiEngine::refreshMailbox(class NmId const &) - ?trUtf8@NmUiEngine@@SA?AVQString@@PBD0@Z @ 249 NONAME ; class QString NmUiEngine::trUtf8(char const *, char const *) - ?contentToMessagePart@NmUiEngine@@QAEHABVNmId@@00AAVNmMessagePart@@@Z @ 250 NONAME ; int NmUiEngine::contentToMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmMessagePart &) - ?removeItem@NmMessageListModel@@AAEXHAAVNmMessageListModelItem@@@Z @ 251 NONAME ; void NmMessageListModel::removeItem(int, class NmMessageListModelItem &) - ??1NmMailboxListModel@@UAE@XZ @ 252 NONAME ; NmMailboxListModel::~NmMailboxListModel(void) - ??0NmBaseClientPlugin@@QAE@XZ @ 253 NONAME ; NmBaseClientPlugin::NmBaseClientPlugin(void) - ?forwardMail@NmBaseClientPlugin@@QAEXXZ @ 254 NONAME ; void NmBaseClientPlugin::forwardMail(void) - ?setItemType@NmMessageListModelItem@@QAEXW4NmMessageItemType@1@@Z @ 255 NONAME ; void NmMessageListModelItem::setItemType(enum NmMessageListModelItem::NmMessageItemType) - ??_ENmDataPluginFactory@@UAE@I@Z @ 256 NONAME ; NmDataPluginFactory::~NmDataPluginFactory(unsigned int) - ?mailboxListChanged@NmBaseClientPlugin@@AAEXABVNmId@@W4MailboxEventType@NmSettings@@@Z @ 257 NONAME ; void NmBaseClientPlugin::mailboxListChanged(class NmId const &, enum NmSettings::MailboxEventType) - ?expanded@NmMessageListModelItem@@QBE_NXZ @ 258 NONAME ; bool NmMessageListModelItem::expanded(void) const - ?columnCount@NmFolderListModel@@UBEHABVQModelIndex@@@Z @ 259 NONAME ; int NmFolderListModel::columnCount(class QModelIndex const &) const - ?pluginInstance@NmDataPluginFactory@@QAEPAVQObject@@VNmId@@@Z @ 260 NONAME ; class QObject * NmDataPluginFactory::pluginInstance(class NmId) - ?setNewParam@NmMessageListModel@@IAEXPAVNmUiStartParam@@@Z @ 261 NONAME ; void NmMessageListModel::setNewParam(class NmUiStartParam *) - ?data@NmMessageListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 262 NONAME ; class QVariant NmMessageListModel::data(class QModelIndex const &, int) const - ?goOnline@NmBaseClientPlugin@@AAEXABVNmId@@@Z @ 263 NONAME ; void NmBaseClientPlugin::goOnline(class NmId const &) - ?createNewMail@NmBaseClientPlugin@@QAEXXZ @ 264 NONAME ; void NmBaseClientPlugin::createNewMail(void) - ??_ENmCheckOutboxOperation@@UAE@I@Z @ 265 NONAME ; NmCheckOutboxOperation::~NmCheckOutboxOperation(unsigned int) - ?qt_metacast@NmBaseClientPlugin@@UAEPAXPBD@Z @ 266 NONAME ; void * NmBaseClientPlugin::qt_metacast(char const *) - ?staticMetaObject@NmBaseClientPlugin@@2UQMetaObject@@B @ 267 NONAME ; struct QMetaObject const NmBaseClientPlugin::staticMetaObject - ?searchComplete@NmUiEngine@@IAEXXZ @ 268 NONAME ; void NmUiEngine::searchComplete(void) - ?setEnvelope@NmMessageListModelItem@@QAEXABVNmMessageEnvelope@@@Z @ 269 NONAME ; void NmMessageListModelItem::setEnvelope(class NmMessageEnvelope const &) - ?qt_metacast@NmAddAttachmentsOperation@@UAEPAXPBD@Z @ 270 NONAME ; void * NmAddAttachmentsOperation::qt_metacast(char const *) - ?createNewMailViewerToolBar@NmBaseClientPlugin@@QAEXXZ @ 271 NONAME ; void NmBaseClientPlugin::createNewMailViewerToolBar(void) - ?staticMetaObject@NmMailboxListModel@@2UQMetaObject@@B @ 272 NONAME ; struct QMetaObject const NmMailboxListModel::staticMetaObject - ?qt_metacall@NmMessageCreationOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 273 NONAME ; int NmMessageCreationOperation::qt_metacall(enum QMetaObject::Call, int, void * *) - ?trUtf8@NmDataManager@@SA?AVQString@@PBD0H@Z @ 274 NONAME ; class QString NmDataManager::trUtf8(char const *, char const *, int) - ?trUtf8@NmMessageCreationOperation@@SA?AVQString@@PBD0H@Z @ 275 NONAME ; class QString NmMessageCreationOperation::trUtf8(char const *, char const *, int) - ?createForwardMessage@NmUiEngine@@QAE?AV?$QPointer@VNmMessageCreationOperation@@@@ABVNmId@@0@Z @ 276 NONAME ; class QPointer NmUiEngine::createForwardMessage(class NmId const &, class NmId const &) - ?handleSyncStateEvent@NmUiEngine@@QAEXW4NmSyncState@@ABVNmOperationCompletionEvent@@@Z @ 277 NONAME ; void NmUiEngine::handleSyncStateEvent(enum NmSyncState, class NmOperationCompletionEvent const &) - ?completeOperation@NmOperation@@QAEXH@Z @ 278 NONAME ; void NmOperation::completeOperation(int) - ?parent@NmFolderListModel@@UBE?AVQModelIndex@@ABV2@@Z @ 279 NONAME ; class QModelIndex NmFolderListModel::parent(class QModelIndex const &) const - ?folder@NmDataManager@@QAEPAVNmFolder@@ABVNmId@@0@Z @ 280 NONAME ; class NmFolder * NmDataManager::folder(class NmId const &, class NmId const &) - ??0NmMessageSendingOperation@@QAE@XZ @ 281 NONAME ; NmMessageSendingOperation::NmMessageSendingOperation(void) - ?replyMail@NmBaseClientPlugin@@QAEXXZ @ 282 NONAME ; void NmBaseClientPlugin::replyMail(void) - ??1NmMessageListModelItem@@UAE@XZ @ 283 NONAME ; NmMessageListModelItem::~NmMessageListModelItem(void) - ?mailboxPropertyChanged@NmBaseClientPlugin@@AAEXABVNmId@@VQVariant@@1@Z @ 284 NONAME ; void NmBaseClientPlugin::mailboxPropertyChanged(class NmId const &, class QVariant, class QVariant) - ?qt_metacall@NmOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 285 NONAME ; int NmOperation::qt_metacall(enum QMetaObject::Call, int, void * *) - ?removeMessageFromModel@NmMessageListModel@@AAEXABVNmId@@@Z @ 286 NONAME ; void NmMessageListModel::removeMessageFromModel(class NmId const &) - ?trUtf8@NmMessageListModel@@SA?AVQString@@PBD0H@Z @ 287 NONAME ; class QString NmMessageListModel::trUtf8(char const *, char const *, int) - ?handleRequest@NmBaseClientPlugin@@AAEXW4NmActionResponseCommand@@ABVNmActionRequest@@@Z @ 288 NONAME ; void NmBaseClientPlugin::handleRequest(enum NmActionResponseCommand, class NmActionRequest const &) - ?operationPartCompleted@NmAddAttachmentsOperation@@IAEXABVQString@@ABVNmId@@H@Z @ 289 NONAME ; void NmAddAttachmentsOperation::operationPartCompleted(class QString const &, class NmId const &, int) - ?trUtf8@NmStoreEnvelopesOperation@@SA?AVQString@@PBD0H@Z @ 290 NONAME ; class QString NmStoreEnvelopesOperation::trUtf8(char const *, char const *, int) - ?tr@NmMessageListModel@@SA?AVQString@@PBD0@Z @ 291 NONAME ; class QString NmMessageListModel::tr(char const *, char const *) - ?doCompleteOperation@NmOperation@@MAEXXZ @ 292 NONAME ; void NmOperation::doCompleteOperation(void) - ?dividerInsertionIndex@NmMessageListModel@@AAEHH@Z @ 293 NONAME ; int NmMessageListModel::dividerInsertionIndex(int) - ??1NmCheckOutboxOperation@@MAE@XZ @ 294 NONAME ; NmCheckOutboxOperation::~NmCheckOutboxOperation(void) - ?createMessageItem@NmMessageListModel@@AAEPAVNmMessageListModelItem@@PAVNmMessageEnvelope@@@Z @ 295 NONAME ; class NmMessageListModelItem * NmMessageListModel::createMessageItem(class NmMessageEnvelope *) - ?id@NmFolderMetaData@@QBE?AVNmId@@XZ @ 296 NONAME ; class NmId NmFolderMetaData::id(void) const - ?createReplyMessage@NmUiEngine@@QAE?AV?$QPointer@VNmMessageCreationOperation@@@@ABVNmId@@0_N@Z @ 297 NONAME ; class QPointer NmUiEngine::createReplyMessage(class NmId const &, class NmId const &, bool) - ?getStandardFolderId@NmDataManager@@QAE?AVNmId@@ABV2@W4NmFolderType@@@Z @ 298 NONAME ; class NmId NmDataManager::getStandardFolderId(class NmId const &, enum NmFolderType) - ?dividersActive@NmMessageListModel@@QAE_NXZ @ 299 NONAME ; bool NmMessageListModel::dividersActive(void) - ?trUtf8@NmMessageSearchListModel@@SA?AVQString@@PBD0H@Z @ 300 NONAME ; class QString NmMessageSearchListModel::trUtf8(char const *, char const *, int) - ?titleDivider@NmMessageListModelItem@@QBE?AVQString@@XZ @ 301 NONAME ; class QString NmMessageListModelItem::titleDivider(void) const - ?getStaticMetaObject@NmBaseClientPlugin@@SAABUQMetaObject@@XZ @ 302 NONAME ; struct QMetaObject const & NmBaseClientPlugin::getStaticMetaObject(void) - ?qt_metacast@NmMessageCreationOperation@@UAEPAXPBD@Z @ 303 NONAME ; void * NmMessageCreationOperation::qt_metacast(char const *) - ?updateEnvelope@NmMessageListModel@@AAEXW4NmEnvelopeProperties@@ABVNmId@@@Z @ 304 NONAME ; void NmMessageListModel::updateEnvelope(enum NmEnvelopeProperties, class NmId const &) - ??_ENmDataManager@@UAE@I@Z @ 305 NONAME ; NmDataManager::~NmDataManager(unsigned int) - ?qt_metacast@NmMailboxListModel@@UAEPAXPBD@Z @ 306 NONAME ; void * NmMailboxListModel::qt_metacast(char const *) - ?search@NmUiEngine@@QAEHABVNmId@@ABVQStringList@@@Z @ 307 NONAME ; int NmUiEngine::search(class NmId const &, class QStringList const &) - ?setEnvelopes@NmUiEngine@@QAE?AV?$QPointer@VNmStoreEnvelopesOperation@@@@ABVNmId@@0W4NmEnvelopeProperties@@ABV?$QList@PB$$CBVNmMessageEnvelope@@@@@Z @ 308 NONAME ; class QPointer NmUiEngine::setEnvelopes(class NmId const &, class NmId const &, enum NmEnvelopeProperties, class QList const &) - ?getActions@NmBaseClientPlugin@@UAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 309 NONAME ; void NmBaseClientPlugin::getActions(class NmActionRequest const &, class QList &) - ?qt_metacast@NmStoreEnvelopesOperation@@UAEPAXPBD@Z @ 310 NONAME ; void * NmStoreEnvelopesOperation::qt_metacast(char const *) - ?handleMessageEvent@NmMessageListModel@@QAEXW4NmMessageEvent@@ABVNmId@@ABV?$QList@VNmId@@@@@Z @ 311 NONAME ; void NmMessageListModel::handleMessageEvent(enum NmMessageEvent, class NmId const &, class QList const &) - ??_ENmMailboxMetaData@@UAE@I@Z @ 312 NONAME ; NmMailboxMetaData::~NmMailboxMetaData(unsigned int) - ??0NmMessageListModelItem@@QAE@XZ @ 313 NONAME ; NmMessageListModelItem::NmMessageListModelItem(void) - ?tr@NmAddAttachmentsOperation@@SA?AVQString@@PBD0H@Z @ 314 NONAME ; class QString NmAddAttachmentsOperation::tr(char const *, char const *, int) - ?setDividers@NmMessageListModel@@QAEX_N@Z @ 315 NONAME ; void NmMessageListModel::setDividers(bool) - ?loadPlugin@NmDataPluginFactory@@QAEPAVQObject@@ABVQDir@@ABVQString@@@Z @ 316 NONAME ; class QObject * NmDataPluginFactory::loadPlugin(class QDir const &, class QString const &) - ?qt_metacast@NmOperation@@UAEPAXPBD@Z @ 317 NONAME ; void * NmOperation::qt_metacast(char const *) - ?tr@NmMessageListModel@@SA?AVQString@@PBD0H@Z @ 318 NONAME ; class QString NmMessageListModel::tr(char const *, char const *, int) - ?removeAttachment@NmUiEngine@@QAE?AV?$QPointer@VNmOperation@@@@ABVNmMessage@@ABVNmId@@@Z @ 319 NONAME ; class QPointer NmUiEngine::removeAttachment(class NmMessage const &, class NmId const &) - ?staticMetaObject@NmMessageListModel@@2UQMetaObject@@B @ 320 NONAME ; struct QMetaObject const NmMessageListModel::staticMetaObject - ?qt_metacall@NmAddAttachmentsOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 321 NONAME ; int NmAddAttachmentsOperation::qt_metacall(enum QMetaObject::Call, int, void * *) - ?qt_metacall@NmUiEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 322 NONAME ; int NmUiEngine::qt_metacall(enum QMetaObject::Call, int, void * *) - ?tr@NmMessageSearchListModel@@SA?AVQString@@PBD0H@Z @ 323 NONAME ; class QString NmMessageSearchListModel::tr(char const *, char const *, int) - ?message@NmDataManager@@QAEPAVNmMessage@@ABVNmId@@00@Z @ 324 NONAME ; class NmMessage * NmDataManager::message(class NmId const &, class NmId const &, class NmId const &) - ?metaObject@NmOperation@@UBEPBUQMetaObject@@XZ @ 325 NONAME ; struct QMetaObject const * NmOperation::metaObject(void) const - ?folderTypeById@NmUiEngine@@QAE?AW4NmFolderType@@VNmId@@0@Z @ 326 NONAME ; enum NmFolderType NmUiEngine::folderTypeById(class NmId, class NmId) - ?refreshContent@NmMessageSearchListModel@@QAEXXZ @ 327 NONAME ; void NmMessageSearchListModel::refreshContent(void) - ?searchResultCount@NmMessageSearchListModel@@QBEHXZ @ 328 NONAME ; int NmMessageSearchListModel::searchResultCount(void) const - ?handleConnectEvent@NmUiEngine@@QAEXW4NmConnectState@@ABVNmId@@H@Z @ 329 NONAME ; void NmUiEngine::handleConnectEvent(enum NmConnectState, class NmId const &, int) + ?updateOperationProgress@NmOperation@@QAEXH@Z @ 71 NONAME ; void NmOperation::updateOperationProgress(int) + ?staticMetaObject@NmAddAttachmentsOperation@@2UQMetaObject@@B @ 72 NONAME ; struct QMetaObject const NmAddAttachmentsOperation::staticMetaObject + ?trUtf8@NmBaseClientPlugin@@SA?AVQString@@PBD0@Z @ 73 NONAME ; class QString NmBaseClientPlugin::trUtf8(char const *, char const *) + ?operationCompleted@NmUiEngine@@IAEXABVNmOperationCompletionEvent@@@Z @ 74 NONAME ; void NmUiEngine::operationCompleted(class NmOperationCompletionEvent const &) + ?cancelSearch@NmUiEngine@@QAEHABVNmId@@@Z @ 75 NONAME ; int NmUiEngine::cancelSearch(class NmId const &) + ?tr@NmDataManager@@SA?AVQString@@PBD0@Z @ 76 NONAME ; class QString NmDataManager::tr(char const *, char const *) + ?removeAttachment@NmUiEngine@@QAE?AV?$QPointer@VNmOperation@@@@ABVNmMessage@@ABVNmId@@@Z @ 77 NONAME ; class QPointer NmUiEngine::removeAttachment(class NmMessage const &, class NmId const &) + ?replyMail@NmBaseClientPlugin@@QAEXXZ @ 78 NONAME ; void NmBaseClientPlugin::replyMail(void) + ??1NmMessageSendingOperation@@MAE@XZ @ 79 NONAME ; NmMessageSendingOperation::~NmMessageSendingOperation(void) + ?mInstance@NmUiEngine@@0PAV1@A @ 80 NONAME ; class NmUiEngine * NmUiEngine::mInstance + ??_ENmMessageListModel@@UAE@I@Z @ 81 NONAME ; NmMessageListModel::~NmMessageListModel(unsigned int) + ?trUtf8@NmBaseClientPlugin@@SA?AVQString@@PBD0H@Z @ 82 NONAME ; class QString NmBaseClientPlugin::trUtf8(char const *, char const *, int) + ?qt_metacast@NmOperation@@UAEPAXPBD@Z @ 83 NONAME ; void * NmOperation::qt_metacast(char const *) + ??1NmFolderListModel@@UAE@XZ @ 84 NONAME ; NmFolderListModel::~NmFolderListModel(void) + ?qt_metacall@NmUiEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 85 NONAME ; int NmUiEngine::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getStaticMetaObject@NmAddAttachmentsOperation@@SAABUQMetaObject@@XZ @ 86 NONAME ; struct QMetaObject const & NmAddAttachmentsOperation::getStaticMetaObject(void) + ?titleDivider@NmMessageListModelItem@@QBE?AVQString@@XZ @ 87 NONAME ; class QString NmMessageListModelItem::titleDivider(void) const + ?metaObject@NmAddAttachmentsOperation@@UBEPBUQMetaObject@@XZ @ 88 NONAME ; struct QMetaObject const * NmAddAttachmentsOperation::metaObject(void) const + ?trUtf8@NmMailboxListModel@@SA?AVQString@@PBD0@Z @ 89 NONAME ; class QString NmMailboxListModel::trUtf8(char const *, char const *) + ?contentToMessagePart@NmDataManager@@QAEHABVNmId@@00AAVNmMessagePart@@@Z @ 90 NONAME ; int NmDataManager::contentToMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmMessagePart &) + ?tr@NmCheckOutboxOperation@@SA?AVQString@@PBD0@Z @ 91 NONAME ; class QString NmCheckOutboxOperation::tr(char const *, char const *) + ?metaObject@NmMessageCreationOperation@@UBEPBUQMetaObject@@XZ @ 92 NONAME ; struct QMetaObject const * NmMessageCreationOperation::metaObject(void) const + ?tr@NmStoreEnvelopesOperation@@SA?AVQString@@PBD0H@Z @ 93 NONAME ; class QString NmStoreEnvelopesOperation::tr(char const *, char const *, int) + ?callEmitDataChanged@NmMessageListModelItem@@QAEXXZ @ 94 NONAME ; void NmMessageListModelItem::callEmitDataChanged(void) + ?settings@NmBaseClientPlugin@@QAEXXZ @ 95 NONAME ; void NmBaseClientPlugin::settings(void) + ?setAddress@NmMailboxMetaData@@QAEXABVQString@@@Z @ 96 NONAME ; void NmMailboxMetaData::setAddress(class QString const &) + ?trUtf8@NmMessageCreationOperation@@SA?AVQString@@PBD0H@Z @ 97 NONAME ; class QString NmMessageCreationOperation::trUtf8(char const *, char const *, int) + ?interfaceInstance@NmDataPluginFactory@@QAEPAVNmDataPluginInterface@@PAVQObject@@@Z @ 98 NONAME ; class NmDataPluginInterface * NmDataPluginFactory::interfaceInstance(class QObject *) + ?mReferenceCount@NmUiEngine@@0HA @ 99 NONAME ; int NmUiEngine::mReferenceCount + ?getInsertionIndex@NmMessageListModel@@ABEHABVNmMessageEnvelope@@@Z @ 100 NONAME ; int NmMessageListModel::getInsertionIndex(class NmMessageEnvelope const &) const + ?search@NmBaseClientPlugin@@QAEXXZ @ 101 NONAME ; void NmBaseClientPlugin::search(void) + ?mailbox@NmDataManager@@QAEPAVNmMailbox@@ABVNmId@@@Z @ 102 NONAME ; class NmMailbox * NmDataManager::mailbox(class NmId const &) + ?trUtf8@NmMessageCreationOperation@@SA?AVQString@@PBD0@Z @ 103 NONAME ; class QString NmMessageCreationOperation::trUtf8(char const *, char const *) + ?setId@NmFolderMetaData@@QAEXABVNmId@@@Z @ 104 NONAME ; void NmFolderMetaData::setId(class NmId const &) + ?getIcon@NmIcons@@SAAAVHbIcon@@W4Icon@1@@Z @ 105 NONAME ; class HbIcon & NmIcons::getIcon(enum NmIcons::Icon) + ?qt_metacall@NmStoreEnvelopesOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 106 NONAME ; int NmStoreEnvelopesOperation::qt_metacall(enum QMetaObject::Call, int, void * *) + ?createNewMessage@NmUiEngine@@QAE?AV?$QPointer@VNmMessageCreationOperation@@@@ABVNmId@@@Z @ 107 NONAME ; class QPointer NmUiEngine::createNewMessage(class NmId const &) + ?tr@NmBaseClientPlugin@@SA?AVQString@@PBD0H@Z @ 108 NONAME ; class QString NmBaseClientPlugin::tr(char const *, char const *, int) + ?handleMatchFound@NmUiEngine@@AAEXABVNmId@@0@Z @ 109 NONAME ; void NmUiEngine::handleMatchFound(class NmId const &, class NmId const &) + ?tr@NmMessageListModel@@SA?AVQString@@PBD0@Z @ 110 NONAME ; class QString NmMessageListModel::tr(char const *, char const *) + ??1NmMailboxMetaData@@UAE@XZ @ 111 NONAME ; NmMailboxMetaData::~NmMailboxMetaData(void) + ??0NmCheckOutboxOperation@@QAE@XZ @ 112 NONAME ; NmCheckOutboxOperation::NmCheckOutboxOperation(void) + ?setPriorityLow@NmBaseClientPlugin@@QAEXXZ @ 113 NONAME ; void NmBaseClientPlugin::setPriorityLow(void) + ?mailboxById@NmDataManager@@QAEPAVNmMailboxMetaData@@ABVNmId@@@Z @ 114 NONAME ; class NmMailboxMetaData * NmDataManager::mailboxById(class NmId const &) + ?setId@NmMailboxMetaData@@QAEXABVNmId@@@Z @ 115 NONAME ; void NmMailboxMetaData::setId(class NmId const &) + ?mailboxDeleted@NmUiEngine@@IAEXABVNmId@@@Z @ 116 NONAME ; void NmUiEngine::mailboxDeleted(class NmId const &) + ?search@NmUiEngine@@QAEHABVNmId@@ABVQStringList@@@Z @ 117 NONAME ; int NmUiEngine::search(class NmId const &, class QStringList const &) + ?createViewerViewCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 118 NONAME ; void NmBaseClientPlugin::createViewerViewCommands(class NmActionRequest const &, class QList &) + ?isSendingMessage@NmUiEngine@@QBE_NXZ @ 119 NONAME ; bool NmUiEngine::isSendingMessage(void) const + ??_ENmUiEngine@@UAE@I@Z @ 120 NONAME ; NmUiEngine::~NmUiEngine(unsigned int) + ?staticMetaObject@NmStoreEnvelopesOperation@@2UQMetaObject@@B @ 121 NONAME ; struct QMetaObject const NmStoreEnvelopesOperation::staticMetaObject + ??_ENmAddAttachmentsOperation@@UAE@I@Z @ 122 NONAME ; NmAddAttachmentsOperation::~NmAddAttachmentsOperation(unsigned int) + ?messageDeleted@NmUiEngine@@IAEXABVNmId@@00@Z @ 123 NONAME ; void NmUiEngine::messageDeleted(class NmId const &, class NmId const &, class NmId const &) + ?messageListModelForSearch@NmUiEngine@@QAEAAVNmMessageListModel@@ABVNmId@@@Z @ 124 NONAME ; class NmMessageListModel & NmUiEngine::messageListModelForSearch(class NmId const &) + ?insertDividerIntoModel@NmMessageListModel@@AAEXPAVNmMessageEnvelope@@H@Z @ 125 NONAME ; void NmMessageListModel::insertDividerIntoModel(class NmMessageEnvelope *, int) + ?qt_metacall@NmAddAttachmentsOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 126 NONAME ; int NmAddAttachmentsOperation::qt_metacall(enum QMetaObject::Call, int, void * *) + ??_ENmFolderListModel@@UAE@I@Z @ 127 NONAME ; NmFolderListModel::~NmFolderListModel(unsigned int) + ??1NmMessageListModelItem@@UAE@XZ @ 128 NONAME ; NmMessageListModelItem::~NmMessageListModelItem(void) + ?checkOutbox@NmUiEngine@@QAE?AV?$QPointer@VNmCheckOutboxOperation@@@@ABVNmId@@@Z @ 129 NONAME ; class QPointer NmUiEngine::checkOutbox(class NmId const &) + ?data@NmMailboxListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 130 NONAME ; class QVariant NmMailboxListModel::data(class QModelIndex const &, int) const + ?connectionState@NmUiEngine@@QAE?AW4NmConnectState@@ABVNmId@@@Z @ 131 NONAME ; enum NmConnectState NmUiEngine::connectionState(class NmId const &) + ?sendMessage@NmUiEngine@@QAEXPAVNmMessage@@ABV?$QList@PAVNmOperation@@@@@Z @ 132 NONAME ; void NmUiEngine::sendMessage(class NmMessage *, class QList const &) + ?markAsUnread@NmBaseClientPlugin@@QAEXXZ @ 133 NONAME ; void NmBaseClientPlugin::markAsUnread(void) + ?releaseInstance@NmDataPluginFactory@@SAXAAPAV1@@Z @ 134 NONAME ; void NmDataPluginFactory::releaseInstance(class NmDataPluginFactory * &) + ?qt_metacall@NmMessageCreationOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 135 NONAME ; int NmMessageCreationOperation::qt_metacall(enum QMetaObject::Call, int, void * *) + ?mPluginArray@NmDataPluginFactory@@0PAV?$QList@PAVQObject@@@@A @ 136 NONAME ; class QList * NmDataPluginFactory::mPluginArray + ?instance@NmDataPluginFactory@@SAPAV1@XZ @ 137 NONAME ; class NmDataPluginFactory * NmDataPluginFactory::instance(void) + ?qt_metacast@NmAddAttachmentsOperation@@UAEPAXPBD@Z @ 138 NONAME ; void * NmAddAttachmentsOperation::qt_metacast(char const *) + ?refreshModelItem@NmMailboxListModel@@QAEXABVNmId@@_N@Z @ 139 NONAME ; void NmMailboxListModel::refreshModelItem(class NmId const &, bool) + ?columnCount@NmFolderListModel@@UBEHABVQModelIndex@@@Z @ 140 NONAME ; int NmFolderListModel::columnCount(class QModelIndex const &) const + ?createNewMail@NmBaseClientPlugin@@QAEXXZ @ 141 NONAME ; void NmBaseClientPlugin::createNewMail(void) + ?staticMetaObject@NmMessageListModel@@2UQMetaObject@@B @ 142 NONAME ; struct QMetaObject const NmMessageListModel::staticMetaObject + ?syncStateEvent@NmUiEngine@@IAEXW4NmSyncState@@ABVNmId@@@Z @ 143 NONAME ; void NmUiEngine::syncStateEvent(enum NmSyncState, class NmId const &) + ?setTitleDivider@NmMessageListModelItem@@QAEXABVQString@@@Z @ 144 NONAME ; void NmMessageListModelItem::setTitleDivider(class QString const &) + ?qt_metacast@NmStoreEnvelopesOperation@@UAEPAXPBD@Z @ 145 NONAME ; void * NmStoreEnvelopesOperation::qt_metacast(char const *) + ?qt_metacast@NmUiEngine@@UAEPAXPBD@Z @ 146 NONAME ; void * NmUiEngine::qt_metacast(char const *) + ?qt_metacall@NmBaseClientPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 147 NONAME ; int NmBaseClientPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?mailboxListModel@NmUiEngine@@QAEAAVNmMailboxListModel@@XZ @ 148 NONAME ; class NmMailboxListModel & NmUiEngine::mailboxListModel(void) + ??_ENmFolderMetaData@@UAE@I@Z @ 149 NONAME ; NmFolderMetaData::~NmFolderMetaData(unsigned int) + ?createMailboxItem@NmMailboxListModel@@AAEPAVNmMailboxListModelItem@@PBVNmMailbox@@@Z @ 150 NONAME ; class NmMailboxListModelItem * NmMailboxListModel::createMailboxItem(class NmMailbox const *) + ?handleMailboxEvent@NmMailboxListModel@@QAEXW4NmMailboxEvent@@ABV?$QList@VNmId@@@@@Z @ 151 NONAME ; void NmMailboxListModel::handleMailboxEvent(enum NmMailboxEvent, class QList const &) + ?handleConnectEvent@NmUiEngine@@QAEXW4NmConnectState@@ABVNmId@@H@Z @ 152 NONAME ; void NmUiEngine::handleConnectEvent(enum NmConnectState, class NmId const &, int) + ??0NmUiEngine@@AAE@XZ @ 153 NONAME ; NmUiEngine::NmUiEngine(void) + ?deleteMessage@NmBaseClientPlugin@@QAEXXZ @ 154 NONAME ; void NmBaseClientPlugin::deleteMessage(void) + ??1NmMessageCreationOperation@@MAE@XZ @ 155 NONAME ; NmMessageCreationOperation::~NmMessageCreationOperation(void) + ?loadPlugin@NmDataPluginFactory@@QAEPAVQObject@@ABVQDir@@ABVQString@@@Z @ 156 NONAME ; class QObject * NmDataPluginFactory::loadPlugin(class QDir const &, class QString const &) + ?doCompleteOperation@NmOperation@@MAEXXZ @ 157 NONAME ; void NmOperation::doCompleteOperation(void) + ?IconId@NmMailboxMetaData@@QBE?AVNmId@@XZ @ 158 NONAME ; class NmId NmMailboxMetaData::IconId(void) const + ?releaseInstance@NmUiEngine@@SAXAAPAV1@@Z @ 159 NONAME ; void NmUiEngine::releaseInstance(class NmUiEngine * &) + ?dividerInsertionIndex@NmMessageListModel@@AAEHH@Z @ 160 NONAME ; int NmMessageListModel::dividerInsertionIndex(int) + ??1NmDataPluginFactory@@EAE@XZ @ 161 NONAME ; NmDataPluginFactory::~NmDataPluginFactory(void) + ?tr@NmStoreEnvelopesOperation@@SA?AVQString@@PBD0@Z @ 162 NONAME ; class QString NmStoreEnvelopesOperation::tr(char const *, char const *) + ?instance@NmUiEngine@@SAPAV1@XZ @ 163 NONAME ; class NmUiEngine * NmUiEngine::instance(void) + ?refreshMailbox@NmUiEngine@@QAEHABVNmId@@@Z @ 164 NONAME ; int NmUiEngine::refreshMailbox(class NmId const &) + ?envelopeById@NmDataManager@@QAEPAVNmMessageEnvelope@@ABVNmId@@00@Z @ 165 NONAME ; class NmMessageEnvelope * NmDataManager::envelopeById(class NmId const &, class NmId const &, class NmId const &) + ?cancelOperation@NmOperation@@QAEXXZ @ 166 NONAME ; void NmOperation::cancelOperation(void) + ?staticMetaObject@NmCheckOutboxOperation@@2UQMetaObject@@B @ 167 NONAME ; struct QMetaObject const NmCheckOutboxOperation::staticMetaObject + ?createReplyMessage@NmUiEngine@@QAE?AV?$QPointer@VNmMessageCreationOperation@@@@ABVNmId@@0_N@Z @ 168 NONAME ; class QPointer NmUiEngine::createReplyMessage(class NmId const &, class NmId const &, bool) + ?pluginInstances@NmDataPluginFactory@@QAEPAV?$QList@PAVQObject@@@@XZ @ 169 NONAME ; class QList * NmDataPluginFactory::pluginInstances(void) + ?updateEnvelopeProperty@NmBaseClientPlugin@@AAEXW4NmEnvelopeProperties@@@Z @ 170 NONAME ; void NmBaseClientPlugin::updateEnvelopeProperty(enum NmEnvelopeProperties) + ?trUtf8@NmMessageListModel@@SA?AVQString@@PBD0@Z @ 171 NONAME ; class QString NmMessageListModel::trUtf8(char const *, char const *) + ?updateEnvelope@NmMessageListModel@@AAEXW4NmEnvelopeProperties@@ABVNmId@@@Z @ 172 NONAME ; void NmMessageListModel::updateEnvelope(enum NmEnvelopeProperties, class NmId const &) + ?createTitleDividerItem@NmMessageListModel@@AAEPAVNmMessageListModelItem@@PAVNmMessageEnvelope@@@Z @ 173 NONAME ; class NmMessageListModelItem * NmMessageListModel::createTitleDividerItem(class NmMessageEnvelope *) + ?trUtf8@NmMessageListModel@@SA?AVQString@@PBD0H@Z @ 174 NONAME ; class QString NmMessageListModel::trUtf8(char const *, char const *, int) + ?trUtf8@NmDataManager@@SA?AVQString@@PBD0H@Z @ 175 NONAME ; class QString NmDataManager::trUtf8(char const *, char const *, int) + ?handleMessageEvent@NmUiEngine@@AAEXW4NmMessageEvent@@ABVNmId@@ABV?$QList@VNmId@@@@1@Z @ 176 NONAME ; void NmUiEngine::handleMessageEvent(enum NmMessageEvent, class NmId const &, class QList const &, class NmId const &) + ?tr@NmBaseClientPlugin@@SA?AVQString@@PBD0@Z @ 177 NONAME ; class QString NmBaseClientPlugin::tr(char const *, char const *) + ??1NmAddAttachmentsOperation@@MAE@XZ @ 178 NONAME ; NmAddAttachmentsOperation::~NmAddAttachmentsOperation(void) + ??0NmMailboxMetaData@@QAE@XZ @ 179 NONAME ; NmMailboxMetaData::NmMailboxMetaData(void) + ?setName@NmMailboxMetaData@@QAEXABVQString@@@Z @ 180 NONAME ; void NmMailboxMetaData::setName(class QString const &) + ?trUtf8@NmCheckOutboxOperation@@SA?AVQString@@PBD0@Z @ 181 NONAME ; class QString NmCheckOutboxOperation::trUtf8(char const *, char const *) + ?qt_metacall@NmMailboxListModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 182 NONAME ; int NmMailboxListModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0NmBaseClientPlugin@@QAE@XZ @ 183 NONAME ; NmBaseClientPlugin::NmBaseClientPlugin(void) + ?mPluginLoaderArray@NmDataPluginFactory@@0V?$QList@PAVQPluginLoader@@@@A @ 184 NONAME ; class QList NmDataPluginFactory::mPluginLoaderArray + ?setDividers@NmMessageListModel@@QAEX_N@Z @ 185 NONAME ; void NmMessageListModel::setDividers(bool) + ?handleRequest@NmBaseClientPlugin@@IAEXW4NmActionResponseCommand@@ABVNmActionRequest@@@Z @ 186 NONAME ; void NmBaseClientPlugin::handleRequest(enum NmActionResponseCommand, class NmActionRequest const &) + ?trUtf8@NmUiEngine@@SA?AVQString@@PBD0H@Z @ 187 NONAME ; class QString NmUiEngine::trUtf8(char const *, char const *, int) + ?mailboxPropertyChanged@NmBaseClientPlugin@@AAEXABVNmId@@VQVariant@@1@Z @ 188 NONAME ; void NmBaseClientPlugin::mailboxPropertyChanged(class NmId const &, class QVariant, class QVariant) + ?tr@NmOperation@@SA?AVQString@@PBD0@Z @ 189 NONAME ; class QString NmOperation::tr(char const *, char const *) + ?metaObject@NmUiEngine@@UBEPBUQMetaObject@@XZ @ 190 NONAME ; struct QMetaObject const * NmUiEngine::metaObject(void) const + ?name@NmMailboxMetaData@@QBE?AVQString@@XZ @ 191 NONAME ; class QString NmMailboxMetaData::name(void) const + ?createNewMailViewerToolBar@NmBaseClientPlugin@@QAEXXZ @ 192 NONAME ; void NmBaseClientPlugin::createNewMailViewerToolBar(void) + ?operationCancelled@NmOperation@@IAEXXZ @ 193 NONAME ; void NmOperation::operationCancelled(void) + ??1NmFolderMetaData@@UAE@XZ @ 194 NONAME ; NmFolderMetaData::~NmFolderMetaData(void) + ?qt_metacast@NmMessageCreationOperation@@UAEPAXPBD@Z @ 195 NONAME ; void * NmMessageCreationOperation::qt_metacast(char const *) + ??_ENmCheckOutboxOperation@@UAE@I@Z @ 196 NONAME ; NmCheckOutboxOperation::~NmCheckOutboxOperation(unsigned int) + ?createEditorViewCommands@NmBaseClientPlugin@@AAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 197 NONAME ; void NmBaseClientPlugin::createEditorViewCommands(class NmActionRequest const &, class QList &) + ?getStaticMetaObject@NmCheckOutboxOperation@@SAABUQMetaObject@@XZ @ 198 NONAME ; struct QMetaObject const & NmCheckOutboxOperation::getStaticMetaObject(void) + ?setPriorityHigh@NmBaseClientPlugin@@QAEXXZ @ 199 NONAME ; void NmBaseClientPlugin::setPriorityHigh(void) + ?getStandardFolderId@NmDataManager@@QAE?AVNmId@@ABV2@W4NmFolderType@@@Z @ 200 NONAME ; class NmId NmDataManager::getStandardFolderId(class NmId const &, enum NmFolderType) + ?handleSyncStateEvent@NmUiEngine@@QAEXW4NmSyncState@@ABVNmOperationCompletionEvent@@@Z @ 201 NONAME ; void NmUiEngine::handleSyncStateEvent(enum NmSyncState, class NmOperationCompletionEvent const &) + ?tr@NmMessageListModel@@SA?AVQString@@PBD0H@Z @ 202 NONAME ; class QString NmMessageListModel::tr(char const *, char const *, int) + ??1NmBaseClientPlugin@@UAE@XZ @ 203 NONAME ; NmBaseClientPlugin::~NmBaseClientPlugin(void) + ?goOffline@NmUiEngine@@QAEHABVNmId@@@Z @ 204 NONAME ; int NmUiEngine::goOffline(class NmId const &) + ?changed@NmMessageListModel@@AAE_NABVNmMessageEnvelope@@0@Z @ 205 NONAME ; bool NmMessageListModel::changed(class NmMessageEnvelope const &, class NmMessageEnvelope const &) + ?staticMetaObject@NmDataManager@@2UQMetaObject@@B @ 206 NONAME ; struct QMetaObject const NmDataManager::staticMetaObject + ?folderById@NmDataManager@@QAEPAVNmFolderMetaData@@ABVNmId@@0@Z @ 207 NONAME ; class NmFolderMetaData * NmDataManager::folderById(class NmId const &, class NmId const &) + ?itemFromModel@NmMessageListModel@@AAEPAVNmMessageListModelItem@@ABVNmId@@@Z @ 208 NONAME ; class NmMessageListModelItem * NmMessageListModel::itemFromModel(class NmId const &) + ?fetchMessagePart@NmUiEngine@@QAE?AV?$QPointer@VNmOperation@@@@ABVNmId@@000@Z @ 209 NONAME ; class QPointer NmUiEngine::fetchMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmId const &) + ?openAttachment@NmBaseClientPlugin@@QAEXXZ @ 210 NONAME ; void NmBaseClientPlugin::openAttachment(void) + ?qt_metacall@NmOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 211 NONAME ; int NmOperation::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1NmStoreEnvelopesOperation@@MAE@XZ @ 212 NONAME ; NmStoreEnvelopesOperation::~NmStoreEnvelopesOperation(void) + ?address@NmMailboxMetaData@@QBE?AVQString@@XZ @ 213 NONAME ; class QString NmMailboxMetaData::address(void) const + ?setIconId@NmMailboxMetaData@@QAEXABVNmId@@@Z @ 214 NONAME ; void NmMailboxMetaData::setIconId(class NmId const &) + ?metaObject@NmDataManager@@UBEPBUQMetaObject@@XZ @ 215 NONAME ; struct QMetaObject const * NmDataManager::metaObject(void) const + ??1NmMailboxListModel@@UAE@XZ @ 216 NONAME ; NmMailboxListModel::~NmMailboxListModel(void) + ?interfaceInstance@NmDataPluginFactory@@QAEPAVNmDataPluginInterface@@VNmId@@@Z @ 217 NONAME ; class NmDataPluginInterface * NmDataPluginFactory::interfaceInstance(class NmId) + ?goOnline@NmUiEngine@@QAEHABVNmId@@@Z @ 218 NONAME ; int NmUiEngine::goOnline(class NmId const &) + ??0NmMessageCreationOperation@@QAE@XZ @ 219 NONAME ; NmMessageCreationOperation::NmMessageCreationOperation(void) + ?tr@NmAddAttachmentsOperation@@SA?AVQString@@PBD0@Z @ 220 NONAME ; class QString NmAddAttachmentsOperation::tr(char const *, char const *) + ?handleMessageEvent@NmMessageListModel@@QAEXW4NmMessageEvent@@ABVNmId@@ABV?$QList@VNmId@@@@@Z @ 221 NONAME ; void NmMessageListModel::handleMessageEvent(enum NmMessageEvent, class NmId const &, class QList const &) + ?setExpanded@NmMessageListModelItem@@QAEX_N@Z @ 222 NONAME ; void NmMessageListModelItem::setExpanded(bool) + ?trUtf8@NmAddAttachmentsOperation@@SA?AVQString@@PBD0H@Z @ 223 NONAME ; class QString NmAddAttachmentsOperation::trUtf8(char const *, char const *, int) + ?messagesBelongUnderSameDivider@NmMessageListModel@@ABE_NPBVNmMessageEnvelope@@0@Z @ 224 NONAME ; bool NmMessageListModel::messagesBelongUnderSameDivider(class NmMessageEnvelope const *, class NmMessageEnvelope const *) const + ?qt_metacast@NmBaseClientPlugin@@UAEPAXPBD@Z @ 225 NONAME ; void * NmBaseClientPlugin::qt_metacast(char const *) + ?staticMetaObject@NmUiEngine@@2UQMetaObject@@B @ 226 NONAME ; struct QMetaObject const NmUiEngine::staticMetaObject + ?tr@NmCheckOutboxOperation@@SA?AVQString@@PBD0H@Z @ 227 NONAME ; class QString NmCheckOutboxOperation::tr(char const *, char const *, int) + ?operationProgressChanged@NmOperation@@IAEXH@Z @ 228 NONAME ; void NmOperation::operationProgressChanged(int) + ??0NmFolderMetaData@@QAE@XZ @ 229 NONAME ; NmFolderMetaData::NmFolderMetaData(void) + ?refresh@NmBaseClientPlugin@@QAEXXZ @ 230 NONAME ; void NmBaseClientPlugin::refresh(void) + ?setEnvelope@NmMessageListModelItem@@QAEXABVNmMessageEnvelope@@@Z @ 231 NONAME ; void NmMessageListModelItem::setEnvelope(class NmMessageEnvelope const &) + ?qt_metacast@NmCheckOutboxOperation@@UAEPAXPBD@Z @ 232 NONAME ; void * NmCheckOutboxOperation::qt_metacast(char const *) + ?currentMailboxId@NmMessageListModel@@QAE?AVNmId@@XZ @ 233 NONAME ; class NmId NmMessageListModel::currentMailboxId(void) + ??_ENmMessageListModelItem@@UAE@I@Z @ 234 NONAME ; NmMessageListModelItem::~NmMessageListModelItem(unsigned int) + ?tr@NmDataManager@@SA?AVQString@@PBD0H@Z @ 235 NONAME ; class QString NmDataManager::tr(char const *, char const *, int) + ?staticMetaObject@NmBaseClientPlugin@@2UQMetaObject@@B @ 236 NONAME ; struct QMetaObject const NmBaseClientPlugin::staticMetaObject + ?trUtf8@NmOperation@@SA?AVQString@@PBD0@Z @ 237 NONAME ; class QString NmOperation::trUtf8(char const *, char const *) + ?operationPartCompleted@NmAddAttachmentsOperation@@IAEXABVQString@@ABVNmId@@H@Z @ 238 NONAME ; void NmAddAttachmentsOperation::operationPartCompleted(class QString const &, class NmId const &, int) + ?listMailboxes@NmDataManager@@QAEXAAV?$QList@PAVNmMailbox@@@@@Z @ 239 NONAME ; void NmDataManager::listMailboxes(class QList &) + ?trUtf8@NmOperation@@SA?AVQString@@PBD0H@Z @ 240 NONAME ; class QString NmOperation::trUtf8(char const *, char const *, int) + ?trUtf8@NmAddAttachmentsOperation@@SA?AVQString@@PBD0@Z @ 241 NONAME ; class QString NmAddAttachmentsOperation::trUtf8(char const *, char const *) + ?goOffline@NmBaseClientPlugin@@AAEXABVNmId@@@Z @ 242 NONAME ; void NmBaseClientPlugin::goOffline(class NmId const &) + ?qt_metacall@NmDataManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 243 NONAME ; int NmDataManager::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@NmMailboxListModel@@SA?AVQString@@PBD0H@Z @ 244 NONAME ; class QString NmMailboxListModel::trUtf8(char const *, char const *, int) + ?handleCompletedSendOperation@NmUiEngine@@QAEXXZ @ 245 NONAME ; void NmUiEngine::handleCompletedSendOperation(void) + ??1NmCheckOutboxOperation@@MAE@XZ @ 246 NONAME ; NmCheckOutboxOperation::~NmCheckOutboxOperation(void) + ?messagePartFile@NmUiEngine@@QAE?AVXQSharableFile@@ABVNmId@@000@Z @ 247 NONAME ; class XQSharableFile NmUiEngine::messagePartFile(class NmId const &, class NmId const &, class NmId const &, class NmId const &) + ?doCancelOperation@NmOperation@@MAEXXZ @ 248 NONAME ; void NmOperation::doCancelOperation(void) + ?metaObject@NmCheckOutboxOperation@@UBEPBUQMetaObject@@XZ @ 249 NONAME ; struct QMetaObject const * NmCheckOutboxOperation::metaObject(void) const + ?id@NmFolderMetaData@@QBE?AVNmId@@XZ @ 250 NONAME ; class NmId NmFolderMetaData::id(void) const + ??0NmMessageListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 251 NONAME ; NmMessageListModel::NmMessageListModel(class NmDataManager &, class QObject *) + ?staticMetaObject@NmMailboxListModel@@2UQMetaObject@@B @ 252 NONAME ; struct QMetaObject const NmMailboxListModel::staticMetaObject + ?deleteMessages@NmUiEngine@@QAEHABVNmId@@0ABV?$QList@VNmId@@@@@Z @ 253 NONAME ; int NmUiEngine::deleteMessages(class NmId const &, class NmId const &, class QList const &) + ?operationCompleted@NmOperation@@IAEXH@Z @ 254 NONAME ; void NmOperation::operationCompleted(int) + ?setName@NmFolderMetaData@@QAEXABVQString@@@Z @ 255 NONAME ; void NmFolderMetaData::setName(class QString const &) + ?folder@NmDataManager@@QAEPAVNmFolder@@ABVNmId@@0@Z @ 256 NONAME ; class NmFolder * NmDataManager::folder(class NmId const &, class NmId const &) + ?createMessageItem@NmMessageListModel@@AAEPAVNmMessageListModelItem@@PAVNmMessageEnvelope@@@Z @ 257 NONAME ; class NmMessageListModelItem * NmMessageListModel::createMessageItem(class NmMessageEnvelope *) + ?addPreliminaryOperation@NmOperation@@QAEXPAV1@@Z @ 258 NONAME ; void NmOperation::addPreliminaryOperation(class NmOperation *) + ??_ENmDataManager@@UAE@I@Z @ 259 NONAME ; NmDataManager::~NmDataManager(unsigned int) + ?runAsyncOperation@NmOperation@@MAEXXZ @ 260 NONAME ; void NmOperation::runAsyncOperation(void) + ??0NmMailboxListModel@@QAE@AAVNmDataManager@@PAVQObject@@@Z @ 261 NONAME ; NmMailboxListModel::NmMailboxListModel(class NmDataManager &, class QObject *) + ?addAttachments@NmUiEngine@@QAE?AV?$QPointer@VNmAddAttachmentsOperation@@@@ABVNmMessage@@ABV?$QList@VQString@@@@@Z @ 262 NONAME ; class QPointer NmUiEngine::addAttachments(class NmMessage const &, class QList const &) + ?connectionEvent@NmUiEngine@@IAEXW4NmConnectState@@ABVNmId@@@Z @ 263 NONAME ; void NmUiEngine::connectionEvent(enum NmConnectState, class NmId const &) + ?removeMessage@NmUiEngine@@QAEHABVNmId@@00@Z @ 264 NONAME ; int NmUiEngine::removeMessage(class NmId const &, class NmId const &, class NmId const &) + ?listFolders@NmDataManager@@QAEXVNmId@@AAV?$QList@PAVNmFolder@@@@@Z @ 265 NONAME ; void NmDataManager::listFolders(class NmId, class QList &) + ?contentToMessagePart@NmUiEngine@@QAEHABVNmId@@00AAVNmMessagePart@@@Z @ 266 NONAME ; int NmUiEngine::contentToMessagePart(class NmId const &, class NmId const &, class NmId const &, class NmMessagePart &) + ??_ENmStoreEnvelopesOperation@@UAE@I@Z @ 267 NONAME ; NmStoreEnvelopesOperation::~NmStoreEnvelopesOperation(unsigned int) + ?itemType@NmMessageListModelItem@@QBE?AW4NmMessageItemType@1@XZ @ 268 NONAME ; enum NmMessageListModelItem::NmMessageItemType NmMessageListModelItem::itemType(void) const + ?setNewParam@NmMessageListModel@@IAEXPAVNmUiStartParam@@@Z @ 269 NONAME ; void NmMessageListModel::setNewParam(class NmUiStartParam *) + ??0NmMessageSendingOperation@@QAE@XZ @ 270 NONAME ; NmMessageSendingOperation::NmMessageSendingOperation(void) + ?qt_metacall@NmCheckOutboxOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 271 NONAME ; int NmCheckOutboxOperation::qt_metacall(enum QMetaObject::Call, int, void * *) + ?doUpdateOperationProgress@NmOperation@@MAEXXZ @ 272 NONAME ; void NmOperation::doUpdateOperationProgress(void) + ?folderTypeById@NmDataManager@@QAE?AW4NmFolderType@@VNmId@@0@Z @ 273 NONAME ; enum NmFolderType NmDataManager::folderTypeById(class NmId, class NmId) + ??0NmAddAttachmentsOperation@@QAE@XZ @ 274 NONAME ; NmAddAttachmentsOperation::NmAddAttachmentsOperation(void) + ?messageBeingSent@NmUiEngine@@QBEPBVNmMessage@@XZ @ 275 NONAME ; class NmMessage const * NmUiEngine::messageBeingSent(void) const + ?trUtf8@NmStoreEnvelopesOperation@@SA?AVQString@@PBD0@Z @ 276 NONAME ; class QString NmStoreEnvelopesOperation::trUtf8(char const *, char const *) + ??_ENmMessageCreationOperation@@UAE@I@Z @ 277 NONAME ; NmMessageCreationOperation::~NmMessageCreationOperation(unsigned int) + ?freeIcons@NmIcons@@SAXXZ @ 278 NONAME ; void NmIcons::freeIcons(void) + ?matchFound@NmUiEngine@@IAEXABVNmId@@0@Z @ 279 NONAME ; void NmUiEngine::matchFound(class NmId const &, class NmId const &) + ?data@NmMessageListModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 280 NONAME ; class QVariant NmMessageListModel::data(class QModelIndex const &, int) const + ?metaObject@NmStoreEnvelopesOperation@@UBEPBUQMetaObject@@XZ @ 281 NONAME ; struct QMetaObject const * NmStoreEnvelopesOperation::metaObject(void) const + ?openMessage@NmBaseClientPlugin@@QAEXXZ @ 282 NONAME ; void NmBaseClientPlugin::openMessage(void) + ?tr@NmUiEngine@@SA?AVQString@@PBD0H@Z @ 283 NONAME ; class QString NmUiEngine::tr(char const *, char const *, int) + ?parent@NmFolderListModel@@UBE?AVQModelIndex@@ABV2@@Z @ 284 NONAME ; class QModelIndex NmFolderListModel::parent(class QModelIndex const &) const + ?qt_metacast@NmDataManager@@UAEPAXPBD@Z @ 285 NONAME ; void * NmDataManager::qt_metacast(char const *) + ?qt_metacast@NmMessageListModel@@UAEPAXPBD@Z @ 286 NONAME ; void * NmMessageListModel::qt_metacast(char const *) + ?expanded@NmMessageListModelItem@@QBE_NXZ @ 287 NONAME ; bool NmMessageListModelItem::expanded(void) const + ?tr@NmMailboxListModel@@SA?AVQString@@PBD0@Z @ 288 NONAME ; class QString NmMailboxListModel::tr(char const *, char const *) + ?replyAllMail@NmBaseClientPlugin@@QAEXXZ @ 289 NONAME ; void NmBaseClientPlugin::replyAllMail(void) + ?getStaticMetaObject@NmUiEngine@@SAABUQMetaObject@@XZ @ 290 NONAME ; struct QMetaObject const & NmUiEngine::getStaticMetaObject(void) + ?listMailboxIds@NmDataManager@@QAEXAAV?$QList@VNmId@@@@@Z @ 291 NONAME ; void NmDataManager::listMailboxIds(class QList &) + ?mailboxListChanged@NmBaseClientPlugin@@AAEXABVNmId@@W4MailboxEventType@NmSettings@@@Z @ 292 NONAME ; void NmBaseClientPlugin::mailboxListChanged(class NmId const &, enum NmSettings::MailboxEventType) + ?metaObject@NmBaseClientPlugin@@UBEPBUQMetaObject@@XZ @ 293 NONAME ; struct QMetaObject const * NmBaseClientPlugin::metaObject(void) const + ?refresh@NmFolderListModel@@QAEXAAV?$QList@PAVNmFolder@@@@@Z @ 294 NONAME ; void NmFolderListModel::refresh(class QList &) + ?sendMail@NmBaseClientPlugin@@QAEXXZ @ 295 NONAME ; void NmBaseClientPlugin::sendMail(void) + ?tr@NmMessageCreationOperation@@SA?AVQString@@PBD0H@Z @ 296 NONAME ; class QString NmMessageCreationOperation::tr(char const *, char const *, int) + ?listMessages@NmDataManager@@QAEXABVNmId@@0AAV?$QList@PAVNmMessageEnvelope@@@@@Z @ 297 NONAME ; void NmDataManager::listMessages(class NmId const &, class NmId const &, class QList &) + ?message@NmUiEngine@@QAEPAVNmMessage@@ABVNmId@@00@Z @ 298 NONAME ; class NmMessage * NmUiEngine::message(class NmId const &, class NmId const &, class NmId const &) + ?setEnvelopeProperties@NmMessageListModel@@QAEXW4NmEnvelopeProperties@@ABV?$QList@VNmId@@@@@Z @ 299 NONAME ; void NmMessageListModel::setEnvelopeProperties(enum NmEnvelopeProperties, class QList const &) + ?metaObject@NmMailboxListModel@@UBEPBUQMetaObject@@XZ @ 300 NONAME ; struct QMetaObject const * NmMailboxListModel::metaObject(void) const + ?tr@NmUiEngine@@SA?AVQString@@PBD0@Z @ 301 NONAME ; class QString NmUiEngine::tr(char const *, char const *) + ?staticMetaObject@NmOperation@@2UQMetaObject@@B @ 302 NONAME ; struct QMetaObject const NmOperation::staticMetaObject + ?refreshMailboxListModel@NmUiEngine@@QAEXXZ @ 303 NONAME ; void NmUiEngine::refreshMailboxListModel(void) + ?trUtf8@NmCheckOutboxOperation@@SA?AVQString@@PBD0H@Z @ 304 NONAME ; class QString NmCheckOutboxOperation::trUtf8(char const *, char const *, int) + ?goOnline@NmBaseClientPlugin@@AAEXABVNmId@@@Z @ 305 NONAME ; void NmBaseClientPlugin::goOnline(class NmId const &) + ?standardFolderId@NmUiEngine@@QAE?AVNmId@@ABV2@W4NmFolderType@@@Z @ 306 NONAME ; class NmId NmUiEngine::standardFolderId(class NmId const &, enum NmFolderType) + ??_ENmMessageSendingOperation@@UAE@I@Z @ 307 NONAME ; NmMessageSendingOperation::~NmMessageSendingOperation(unsigned int) + ?pluginInstance@NmDataPluginFactory@@QAEPAVQObject@@VNmId@@@Z @ 308 NONAME ; class QObject * NmDataPluginFactory::pluginInstance(class NmId) + ?mInstance@NmDataPluginFactory@@0PAV1@A @ 309 NONAME ; class NmDataPluginFactory * NmDataPluginFactory::mInstance + ?mailboxById@NmUiEngine@@QAEPAVNmMailboxMetaData@@ABVNmId@@@Z @ 310 NONAME ; class NmMailboxMetaData * NmUiEngine::mailboxById(class NmId const &) + ?trUtf8@NmDataManager@@SA?AVQString@@PBD0@Z @ 311 NONAME ; class QString NmDataManager::trUtf8(char const *, char const *) + ??_ENmMailboxListModel@@UAE@I@Z @ 312 NONAME ; NmMailboxListModel::~NmMailboxListModel(unsigned int) + ?getStaticMetaObject@NmStoreEnvelopesOperation@@SAABUQMetaObject@@XZ @ 313 NONAME ; struct QMetaObject const & NmStoreEnvelopesOperation::getStaticMetaObject(void) + ?saveMessage@NmUiEngine@@QAEHABVNmMessage@@@Z @ 314 NONAME ; int NmUiEngine::saveMessage(class NmMessage const &) + ?getStaticMetaObject@NmDataManager@@SAABUQMetaObject@@XZ @ 315 NONAME ; struct QMetaObject const & NmDataManager::getStaticMetaObject(void) + ?applicationStateInterfaceInstance@NmDataPluginFactory@@QAEPAVNmApplicationStateInterface@@VNmId@@@Z @ 316 NONAME ; class NmApplicationStateInterface * NmDataPluginFactory::applicationStateInterfaceInstance(class NmId) + ?applicationStateInterfaceInstance@NmDataPluginFactory@@AAEPAVNmApplicationStateInterface@@PAVQObject@@@Z @ 317 NONAME ; class NmApplicationStateInterface * NmDataPluginFactory::applicationStateInterfaceInstance(class QObject *) + ?updateActiveFolder@NmUiEngine@@QAEXABVNmId@@0@Z @ 318 NONAME ; void NmUiEngine::updateActiveFolder(class NmId const &, class NmId const &) + ?fetchMessageParts@NmUiEngine@@QAE?AV?$QPointer@VNmOperation@@@@ABVNmId@@00ABV?$QList@VNmId@@@@@Z @ 319 NONAME ; class QPointer NmUiEngine::fetchMessageParts(class NmId const &, class NmId const &, class NmId const &, class QList const &) + ?setIgnoreFolderIds@NmMessageListModel@@QAEX_N@Z @ 320 NONAME ; void NmMessageListModel::setIgnoreFolderIds(bool) diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/eabi/nmailuiengineu.def --- a/emailuis/nmailuiengine/eabi/nmailuiengineu.def Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/eabi/nmailuiengineu.def Thu May 27 12:43:55 2010 +0300 @@ -1,5 +1,5 @@ EXPORTS - _ZN10NmUiEngine10matchFoundERK4NmId @ 1 NONAME + _ZN10NmUiEngine10matchFoundERK4NmIdS2_ @ 1 NONAME _ZN10NmUiEngine11checkOutboxERK4NmId @ 2 NONAME _ZN10NmUiEngine11mailboxByIdERK4NmId @ 3 NONAME _ZN10NmUiEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 4 NONAME @@ -12,322 +12,313 @@ _ZN10NmUiEngine13removeMessageERK4NmIdS2_S2_ @ 11 NONAME _ZN10NmUiEngine14addAttachmentsERK9NmMessageRK5QListI7QStringE @ 12 NONAME _ZN10NmUiEngine14deleteMessagesERK4NmIdS2_RK5QListIS0_E @ 13 NONAME - _ZN10NmUiEngine14mailboxDeletedERK4NmId @ 14 NONAME - _ZN10NmUiEngine14messageDeletedERK4NmIdS2_S2_ @ 15 NONAME - _ZN10NmUiEngine14refreshMailboxERK4NmId @ 16 NONAME - _ZN10NmUiEngine14searchCompleteEv @ 17 NONAME - _ZN10NmUiEngine14syncStateEventE11NmSyncStateRK4NmId @ 18 NONAME - _ZN10NmUiEngine15connectionEventE14NmConnectStateRK4NmId @ 19 NONAME - _ZN10NmUiEngine15connectionStateERK4NmId @ 20 NONAME - _ZN10NmUiEngine15mReferenceCountE @ 21 NONAME DATA 4 - _ZN10NmUiEngine15messagePartFileERK4NmIdS2_S2_S2_ @ 22 NONAME - _ZN10NmUiEngine15releaseInstanceERPS_ @ 23 NONAME - _ZN10NmUiEngine16createNewMessageERK4NmId @ 24 NONAME - _ZN10NmUiEngine16fetchMessagePartERK4NmIdS2_S2_S2_ @ 25 NONAME - _ZN10NmUiEngine16mailboxListModelEv @ 26 NONAME - _ZN10NmUiEngine16messageListModelERK4NmIdS2_ @ 27 NONAME - _ZN10NmUiEngine16removeAttachmentERK9NmMessageRK4NmId @ 28 NONAME - _ZN10NmUiEngine16standardFolderIdERK4NmId12NmFolderType @ 29 NONAME - _ZN10NmUiEngine16staticMetaObjectE @ 30 NONAME DATA 16 - _ZN10NmUiEngine18createReplyMessageERK4NmIdS2_b @ 31 NONAME - _ZN10NmUiEngine18handleMailboxEventE14NmMailboxEventRK5QListI4NmIdE @ 32 NONAME - _ZN10NmUiEngine18handleMessageEventE14NmMessageEventRK4NmIdRK5QListIS1_ES3_ @ 33 NONAME - _ZN10NmUiEngine18operationCompletedERK26NmOperationCompletionEvent @ 34 NONAME - _ZN10NmUiEngine19getStaticMetaObjectEv @ 35 NONAME - _ZN10NmUiEngine20contentToMessagePartERK4NmIdS2_S2_R13NmMessagePart @ 36 NONAME - _ZN10NmUiEngine20createForwardMessageERK4NmIdS2_ @ 37 NONAME - _ZN10NmUiEngine20handleSyncStateEventE11NmSyncStateRK26NmOperationCompletionEvent @ 38 NONAME - _ZN10NmUiEngine22messageSearchListModelEP18QAbstractItemModel @ 39 NONAME - _ZN10NmUiEngine22sendOperationCompletedEv @ 40 NONAME - _ZN10NmUiEngine23refreshMailboxListModelEv @ 41 NONAME - _ZN10NmUiEngine28handleCompletedSendOperationEv @ 42 NONAME - _ZN10NmUiEngine6searchERK4NmIdRK11QStringList @ 43 NONAME - _ZN10NmUiEngine7messageERK4NmIdS2_S2_ @ 44 NONAME - _ZN10NmUiEngine8goOnlineERK4NmId @ 45 NONAME - _ZN10NmUiEngine8instanceEv @ 46 NONAME - _ZN10NmUiEngine9goOfflineERK4NmId @ 47 NONAME - _ZN10NmUiEngine9mInstanceE @ 48 NONAME DATA 4 - _ZN10NmUiEngine9syncStateERK4NmId @ 49 NONAME - _ZN10NmUiEngineC1Ev @ 50 NONAME - _ZN10NmUiEngineC2Ev @ 51 NONAME - _ZN10NmUiEngineD0Ev @ 52 NONAME - _ZN10NmUiEngineD1Ev @ 53 NONAME - _ZN10NmUiEngineD2Ev @ 54 NONAME - _ZN11NmOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 55 NONAME - _ZN11NmOperation11qt_metacastEPKc @ 56 NONAME - _ZN11NmOperation15cancelOperationEv @ 57 NONAME - _ZN11NmOperation15deleteOperationEv @ 58 NONAME - _ZN11NmOperation16staticMetaObjectE @ 59 NONAME DATA 16 - _ZN11NmOperation17completeOperationEi @ 60 NONAME - _ZN11NmOperation17doCancelOperationEv @ 61 NONAME - _ZN11NmOperation17runAsyncOperationEv @ 62 NONAME - _ZN11NmOperation18operationCancelledEv @ 63 NONAME - _ZN11NmOperation18operationCompletedEi @ 64 NONAME - _ZN11NmOperation19doCompleteOperationEv @ 65 NONAME - _ZN11NmOperation19getStaticMetaObjectEv @ 66 NONAME - _ZN11NmOperation23addPreliminaryOperationEPS_ @ 67 NONAME - _ZN11NmOperation23updateOperationProgressEi @ 68 NONAME - _ZN11NmOperation24operationProgressChangedEi @ 69 NONAME - _ZN11NmOperation25doUpdateOperationProgressEv @ 70 NONAME - _ZN11NmOperation34handlePreliminaryOperationFinishedEv @ 71 NONAME - _ZN11NmOperationC2Ev @ 72 NONAME - _ZN11NmOperationD0Ev @ 73 NONAME - _ZN11NmOperationD1Ev @ 74 NONAME - _ZN11NmOperationD2Ev @ 75 NONAME - _ZN13NmDataManager10folderByIdERK4NmIdS2_ @ 76 NONAME - _ZN13NmDataManager11listFoldersE4NmIdR5QListIP8NmFolderE @ 77 NONAME - _ZN13NmDataManager11mailboxByIdERK4NmId @ 78 NONAME - _ZN13NmDataManager11qt_metacallEN11QMetaObject4CallEiPPv @ 79 NONAME - _ZN13NmDataManager11qt_metacastEPKc @ 80 NONAME - _ZN13NmDataManager12envelopeByIdERK4NmIdS2_S2_ @ 81 NONAME - _ZN13NmDataManager12listMessagesERK4NmIdS2_R5QListIP17NmMessageEnvelopeE @ 82 NONAME - _ZN13NmDataManager13listMailboxesER5QListIP9NmMailboxE @ 83 NONAME - _ZN13NmDataManager14listMailboxIdsER5QListI4NmIdE @ 84 NONAME - _ZN13NmDataManager16staticMetaObjectE @ 85 NONAME DATA 16 - _ZN13NmDataManager19getStandardFolderIdERK4NmId12NmFolderType @ 86 NONAME - _ZN13NmDataManager19getStaticMetaObjectEv @ 87 NONAME - _ZN13NmDataManager20contentToMessagePartERK4NmIdS2_S2_R13NmMessagePart @ 88 NONAME - _ZN13NmDataManager6folderERK4NmIdS2_ @ 89 NONAME - _ZN13NmDataManager7mailboxERK4NmId @ 90 NONAME - _ZN13NmDataManager7messageERK4NmIdS2_S2_ @ 91 NONAME - _ZN13NmDataManagerC1Ev @ 92 NONAME - _ZN13NmDataManagerC2Ev @ 93 NONAME - _ZN13NmDataManagerD0Ev @ 94 NONAME - _ZN13NmDataManagerD1Ev @ 95 NONAME - _ZN13NmDataManagerD2Ev @ 96 NONAME - _ZN16NmFolderMetaData5setIdERK4NmId @ 97 NONAME - _ZN16NmFolderMetaData7setNameERK7QString @ 98 NONAME - _ZN16NmFolderMetaDataC1Ev @ 99 NONAME - _ZN16NmFolderMetaDataC2Ev @ 100 NONAME - _ZN16NmFolderMetaDataD0Ev @ 101 NONAME - _ZN16NmFolderMetaDataD1Ev @ 102 NONAME - _ZN16NmFolderMetaDataD2Ev @ 103 NONAME - _ZN17NmFolderListModel7refreshER5QListIP8NmFolderE @ 104 NONAME - _ZN17NmFolderListModelC1ER13NmDataManagerP7QObject @ 105 NONAME - _ZN17NmFolderListModelC2ER13NmDataManagerP7QObject @ 106 NONAME - _ZN17NmFolderListModelD0Ev @ 107 NONAME - _ZN17NmFolderListModelD1Ev @ 108 NONAME - _ZN17NmFolderListModelD2Ev @ 109 NONAME - _ZN17NmMailboxMetaData5setIdERK4NmId @ 110 NONAME - _ZN17NmMailboxMetaData7setNameERK7QString @ 111 NONAME - _ZN17NmMailboxMetaData9setIconIdERK4NmId @ 112 NONAME - _ZN17NmMailboxMetaDataC1Ev @ 113 NONAME - _ZN17NmMailboxMetaDataC2Ev @ 114 NONAME - _ZN17NmMailboxMetaDataD0Ev @ 115 NONAME - _ZN17NmMailboxMetaDataD1Ev @ 116 NONAME - _ZN17NmMailboxMetaDataD2Ev @ 117 NONAME - _ZN18NmBaseClientPlugin10getActionsERK15NmActionRequestR5QListIP8NmActionE @ 118 NONAME - _ZN18NmBaseClientPlugin10markAsReadEv @ 119 NONAME - _ZN18NmBaseClientPlugin11forwardMailEv @ 120 NONAME - _ZN18NmBaseClientPlugin11openMessageEv @ 121 NONAME - _ZN18NmBaseClientPlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 122 NONAME - _ZN18NmBaseClientPlugin11qt_metacastEPKc @ 123 NONAME - _ZN18NmBaseClientPlugin12markAsUnreadEv @ 124 NONAME - _ZN18NmBaseClientPlugin12replyAllMailEv @ 125 NONAME - _ZN18NmBaseClientPlugin13createNewMailEv @ 126 NONAME - _ZN18NmBaseClientPlugin13deleteMessageEv @ 127 NONAME - _ZN18NmBaseClientPlugin13handleRequestE23NmActionResponseCommandRK15NmActionRequest @ 128 NONAME - _ZN18NmBaseClientPlugin14openAttachmentEv @ 129 NONAME - _ZN18NmBaseClientPlugin14setPriorityLowEv @ 130 NONAME - _ZN18NmBaseClientPlugin15setPriorityHighEv @ 131 NONAME - _ZN18NmBaseClientPlugin16removeAttachmentEv @ 132 NONAME - _ZN18NmBaseClientPlugin16staticMetaObjectE @ 133 NONAME DATA 16 - _ZN18NmBaseClientPlugin17setPriorityNormalEv @ 134 NONAME - _ZN18NmBaseClientPlugin18mailboxListChangedERK4NmIdN10NmSettings16MailboxEventTypeE @ 135 NONAME - _ZN18NmBaseClientPlugin19getStaticMetaObjectEv @ 136 NONAME - _ZN18NmBaseClientPlugin22mailboxPropertyChangedERK4NmId8QVariantS3_ @ 137 NONAME - _ZN18NmBaseClientPlugin22updateEnvelopePropertyE20NmEnvelopeProperties @ 138 NONAME - _ZN18NmBaseClientPlugin24createEditorViewCommandsERK15NmActionRequestR5QListIP8NmActionE @ 139 NONAME - _ZN18NmBaseClientPlugin24createViewerViewCommandsERK15NmActionRequestR5QListIP8NmActionE @ 140 NONAME - _ZN18NmBaseClientPlugin25createMessageListCommandsERK15NmActionRequestR5QListIP8NmActionE @ 141 NONAME - _ZN18NmBaseClientPlugin26createNewMailViewerToolBarEv @ 142 NONAME - _ZN18NmBaseClientPlugin27deleteMessageFromViewerViewEv @ 143 NONAME - _ZN18NmBaseClientPlugin6attachEv @ 144 NONAME - _ZN18NmBaseClientPlugin6searchEv @ 145 NONAME - _ZN18NmBaseClientPlugin7refreshEv @ 146 NONAME - _ZN18NmBaseClientPlugin8goOnlineERK4NmId @ 147 NONAME - _ZN18NmBaseClientPlugin8sendMailEv @ 148 NONAME - _ZN18NmBaseClientPlugin8settingsEv @ 149 NONAME - _ZN18NmBaseClientPlugin9goOfflineERK4NmId @ 150 NONAME - _ZN18NmBaseClientPlugin9replyMailEv @ 151 NONAME - _ZN18NmBaseClientPluginC2Ev @ 152 NONAME - _ZN18NmBaseClientPluginD0Ev @ 153 NONAME - _ZN18NmBaseClientPluginD1Ev @ 154 NONAME - _ZN18NmBaseClientPluginD2Ev @ 155 NONAME - _ZN18NmMailboxListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 156 NONAME - _ZN18NmMailboxListModel11qt_metacastEPKc @ 157 NONAME - _ZN18NmMailboxListModel16refreshModelItemERK4NmIdb @ 158 NONAME - _ZN18NmMailboxListModel16staticMetaObjectE @ 159 NONAME DATA 16 - _ZN18NmMailboxListModel17createMailboxItemEPK9NmMailbox @ 160 NONAME - _ZN18NmMailboxListModel18handleMailboxEventE14NmMailboxEventRK5QListI4NmIdE @ 161 NONAME - _ZN18NmMailboxListModel19getStaticMetaObjectEv @ 162 NONAME - _ZN18NmMailboxListModel7refreshER5QListIP9NmMailboxE @ 163 NONAME - _ZN18NmMailboxListModelC1ER13NmDataManagerP7QObject @ 164 NONAME - _ZN18NmMailboxListModelC2ER13NmDataManagerP7QObject @ 165 NONAME - _ZN18NmMailboxListModelD0Ev @ 166 NONAME - _ZN18NmMailboxListModelD1Ev @ 167 NONAME - _ZN18NmMailboxListModelD2Ev @ 168 NONAME - _ZN18NmMessageListModel10removeItemEiR22NmMessageListModelItem @ 169 NONAME - _ZN18NmMessageListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 170 NONAME - _ZN18NmMessageListModel11qt_metacastEPKc @ 171 NONAME - _ZN18NmMessageListModel11setDividersEb @ 172 NONAME - _ZN18NmMessageListModel11setNewParamEP14NmUiStartParam @ 173 NONAME - _ZN18NmMessageListModel13itemFromModelERK4NmId @ 174 NONAME - _ZN18NmMessageListModel14dividersActiveEv @ 175 NONAME - _ZN18NmMessageListModel14updateEnvelopeE20NmEnvelopePropertiesRK4NmId @ 176 NONAME - _ZN18NmMessageListModel16currentMailboxIdEv @ 177 NONAME - _ZN18NmMessageListModel16staticMetaObjectE @ 178 NONAME DATA 16 - _ZN18NmMessageListModel17createMessageItemEP17NmMessageEnvelope @ 179 NONAME - _ZN18NmMessageListModel18handleMessageEventE14NmMessageEventRK4NmIdRK5QListIS1_E @ 180 NONAME - _ZN18NmMessageListModel19getStaticMetaObjectEv @ 181 NONAME - _ZN18NmMessageListModel21dividerInsertionIndexEi @ 182 NONAME - _ZN18NmMessageListModel21setEnvelopePropertiesE20NmEnvelopePropertiesRK5QListI4NmIdE @ 183 NONAME - _ZN18NmMessageListModel21updateMessageEnvelopeERK4NmIdS2_S2_ @ 184 NONAME - _ZN18NmMessageListModel22createTitleDividerItemEP17NmMessageEnvelope @ 185 NONAME - _ZN18NmMessageListModel22insertDividerIntoModelEP17NmMessageEnvelopei @ 186 NONAME - _ZN18NmMessageListModel22insertMessageIntoModelEP17NmMessageEnvelopeib @ 187 NONAME - _ZN18NmMessageListModel22removeMessageFromModelERK4NmId @ 188 NONAME - _ZN18NmMessageListModel25insertNewMessageIntoModelERK4NmIdS2_S2_ @ 189 NONAME - _ZN18NmMessageListModel7changedERK17NmMessageEnvelopeS2_ @ 190 NONAME - _ZN18NmMessageListModel7refreshE4NmIdS0_RK5QListIP17NmMessageEnvelopeE @ 191 NONAME - _ZN18NmMessageListModelC1ER13NmDataManagerP7QObject @ 192 NONAME - _ZN18NmMessageListModelC2ER13NmDataManagerP7QObject @ 193 NONAME - _ZN18NmMessageListModelD0Ev @ 194 NONAME - _ZN18NmMessageListModelD1Ev @ 195 NONAME - _ZN18NmMessageListModelD2Ev @ 196 NONAME - _ZN19NmDataPluginFactory10loadPluginERK4QDirRK7QString @ 197 NONAME - _ZN19NmDataPluginFactory12mPluginArrayE @ 198 NONAME DATA 4 - _ZN19NmDataPluginFactory14pluginInstanceE4NmId @ 199 NONAME - _ZN19NmDataPluginFactory15mReferenceCountE @ 200 NONAME DATA 4 - _ZN19NmDataPluginFactory15pluginInstancesEv @ 201 NONAME - _ZN19NmDataPluginFactory15releaseInstanceERPS_ @ 202 NONAME - _ZN19NmDataPluginFactory17interfaceInstanceE4NmId @ 203 NONAME - _ZN19NmDataPluginFactory17interfaceInstanceEP7QObject @ 204 NONAME - _ZN19NmDataPluginFactory18mPluginLoaderArrayE @ 205 NONAME DATA 4 - _ZN19NmDataPluginFactory8instanceEv @ 206 NONAME - _ZN19NmDataPluginFactory9mInstanceE @ 207 NONAME DATA 4 - _ZN19NmDataPluginFactoryC1Ev @ 208 NONAME - _ZN19NmDataPluginFactoryC2Ev @ 209 NONAME - _ZN19NmDataPluginFactoryD0Ev @ 210 NONAME - _ZN19NmDataPluginFactoryD1Ev @ 211 NONAME - _ZN19NmDataPluginFactoryD2Ev @ 212 NONAME - _ZN22NmCheckOutboxOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 213 NONAME - _ZN22NmCheckOutboxOperation11qt_metacastEPKc @ 214 NONAME - _ZN22NmCheckOutboxOperation16staticMetaObjectE @ 215 NONAME DATA 16 - _ZN22NmCheckOutboxOperation19getStaticMetaObjectEv @ 216 NONAME - _ZN22NmMessageListModelItem11envelopePtrEv @ 217 NONAME - _ZN22NmMessageListModelItem11setEnvelopeEP17NmMessageEnvelope @ 218 NONAME - _ZN22NmMessageListModelItem11setEnvelopeERK17NmMessageEnvelope @ 219 NONAME - _ZN22NmMessageListModelItem11setExpandedEb @ 220 NONAME - _ZN22NmMessageListModelItem11setItemTypeENS_17NmMessageItemTypeE @ 221 NONAME - _ZN22NmMessageListModelItem15setTitleDividerERK7QString @ 222 NONAME - _ZN22NmMessageListModelItem19callEmitDataChangedEv @ 223 NONAME - _ZN22NmMessageListModelItemC1Ev @ 224 NONAME - _ZN22NmMessageListModelItemC2Ev @ 225 NONAME - _ZN22NmMessageListModelItemD0Ev @ 226 NONAME - _ZN22NmMessageListModelItemD1Ev @ 227 NONAME - _ZN22NmMessageListModelItemD2Ev @ 228 NONAME - _ZN24NmMessageSearchListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 229 NONAME - _ZN24NmMessageSearchListModel11qt_metacastEPKc @ 230 NONAME - _ZN24NmMessageSearchListModel15addSearchResultERK4NmId @ 231 NONAME - _ZN24NmMessageSearchListModel16staticMetaObjectE @ 232 NONAME DATA 16 - _ZN24NmMessageSearchListModel18clearSearchResultsEv @ 233 NONAME - _ZN24NmMessageSearchListModel19getStaticMetaObjectEv @ 234 NONAME - _ZN24NmMessageSearchListModelC1EP7QObject @ 235 NONAME - _ZN24NmMessageSearchListModelC2EP7QObject @ 236 NONAME - _ZN24NmMessageSearchListModelD0Ev @ 237 NONAME - _ZN24NmMessageSearchListModelD1Ev @ 238 NONAME - _ZN24NmMessageSearchListModelD2Ev @ 239 NONAME - _ZN25NmAddAttachmentsOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 240 NONAME - _ZN25NmAddAttachmentsOperation11qt_metacastEPKc @ 241 NONAME - _ZN25NmAddAttachmentsOperation16staticMetaObjectE @ 242 NONAME DATA 16 - _ZN25NmAddAttachmentsOperation19getStaticMetaObjectEv @ 243 NONAME - _ZN25NmAddAttachmentsOperation21completeOperationPartERK7QStringRK4NmIdi @ 244 NONAME - _ZN25NmAddAttachmentsOperation22operationPartCompletedERK7QStringRK4NmIdi @ 245 NONAME - _ZN25NmAddAttachmentsOperationC2Ev @ 246 NONAME - _ZN25NmAddAttachmentsOperationD0Ev @ 247 NONAME - _ZN25NmAddAttachmentsOperationD1Ev @ 248 NONAME - _ZN25NmAddAttachmentsOperationD2Ev @ 249 NONAME - _ZN25NmStoreEnvelopesOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 250 NONAME - _ZN25NmStoreEnvelopesOperation11qt_metacastEPKc @ 251 NONAME - _ZN25NmStoreEnvelopesOperation16staticMetaObjectE @ 252 NONAME DATA 16 - _ZN25NmStoreEnvelopesOperation19getStaticMetaObjectEv @ 253 NONAME - _ZN26NmMessageCreationOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 254 NONAME - _ZN26NmMessageCreationOperation11qt_metacastEPKc @ 255 NONAME - _ZN26NmMessageCreationOperation16staticMetaObjectE @ 256 NONAME DATA 16 - _ZN26NmMessageCreationOperation19getStaticMetaObjectEv @ 257 NONAME - _ZN7NmIcons7getIconENS_4IconE @ 258 NONAME - _ZN7NmIcons9freeIconsEv @ 259 NONAME - _ZNK10NmUiEngine10metaObjectEv @ 260 NONAME - _ZNK10NmUiEngine16isSendingMessageEv @ 261 NONAME - _ZNK10NmUiEngine16messageBeingSentEv @ 262 NONAME - _ZNK11NmOperation10metaObjectEv @ 263 NONAME - _ZNK11NmOperation9isRunningEv @ 264 NONAME - _ZNK13NmDataManager10metaObjectEv @ 265 NONAME - _ZNK16NmFolderMetaData2idEv @ 266 NONAME - _ZNK16NmFolderMetaData4nameEv @ 267 NONAME - _ZNK17NmFolderListModel11columnCountERK11QModelIndex @ 268 NONAME - _ZNK17NmFolderListModel4dataERK11QModelIndexi @ 269 NONAME - _ZNK17NmFolderListModel6parentERK11QModelIndex @ 270 NONAME - _ZNK17NmFolderListModel8rowCountERK11QModelIndex @ 271 NONAME - _ZNK17NmMailboxMetaData2idEv @ 272 NONAME - _ZNK17NmMailboxMetaData4nameEv @ 273 NONAME - _ZNK17NmMailboxMetaData6IconIdEv @ 274 NONAME - _ZNK18NmBaseClientPlugin10metaObjectEv @ 275 NONAME - _ZNK18NmMailboxListModel10metaObjectEv @ 276 NONAME - _ZNK18NmMailboxListModel4dataERK11QModelIndexi @ 277 NONAME - _ZNK18NmMessageListModel10metaObjectEv @ 278 NONAME - _ZNK18NmMessageListModel17getInsertionIndexERK17NmMessageEnvelope @ 279 NONAME - _ZNK18NmMessageListModel30messagesBelongUnderSameDividerEPK17NmMessageEnvelopeS2_ @ 280 NONAME - _ZNK18NmMessageListModel4dataERK11QModelIndexi @ 281 NONAME - _ZNK22NmCheckOutboxOperation10metaObjectEv @ 282 NONAME - _ZNK22NmMessageListModelItem12titleDividerEv @ 283 NONAME - _ZNK22NmMessageListModelItem8envelopeEv @ 284 NONAME - _ZNK22NmMessageListModelItem8expandedEv @ 285 NONAME - _ZNK22NmMessageListModelItem8itemTypeEv @ 286 NONAME - _ZNK24NmMessageSearchListModel10metaObjectEv @ 287 NONAME - _ZNK24NmMessageSearchListModel16filterAcceptsRowEiRK11QModelIndex @ 288 NONAME - _ZNK24NmMessageSearchListModel4dataERK11QModelIndexi @ 289 NONAME - _ZNK25NmAddAttachmentsOperation10metaObjectEv @ 290 NONAME - _ZNK25NmStoreEnvelopesOperation10metaObjectEv @ 291 NONAME - _ZNK26NmMessageCreationOperation10metaObjectEv @ 292 NONAME - _ZTI10NmUiEngine @ 293 NONAME - _ZTI11NmOperation @ 294 NONAME - _ZTI13NmDataManager @ 295 NONAME - _ZTI16NmFolderMetaData @ 296 NONAME - _ZTI17NmFolderListModel @ 297 NONAME - _ZTI17NmMailboxMetaData @ 298 NONAME - _ZTI18NmBaseClientPlugin @ 299 NONAME - _ZTI18NmMailboxListModel @ 300 NONAME - _ZTI18NmMessageListModel @ 301 NONAME - _ZTI19NmDataPluginFactory @ 302 NONAME - _ZTI22NmCheckOutboxOperation @ 303 NONAME - _ZTI22NmMessageListModelItem @ 304 NONAME - _ZTI24NmMessageSearchListModel @ 305 NONAME - _ZTI25NmAddAttachmentsOperation @ 306 NONAME - _ZTI25NmStoreEnvelopesOperation @ 307 NONAME - _ZTI26NmMessageCreationOperation @ 308 NONAME - _ZTV10NmUiEngine @ 309 NONAME - _ZTV11NmOperation @ 310 NONAME - _ZTV13NmDataManager @ 311 NONAME - _ZTV16NmFolderMetaData @ 312 NONAME - _ZTV17NmFolderListModel @ 313 NONAME - _ZTV17NmMailboxMetaData @ 314 NONAME - _ZTV18NmBaseClientPlugin @ 315 NONAME - _ZTV18NmMailboxListModel @ 316 NONAME - _ZTV18NmMessageListModel @ 317 NONAME - _ZTV19NmDataPluginFactory @ 318 NONAME - _ZTV22NmCheckOutboxOperation @ 319 NONAME - _ZTV22NmMessageListModelItem @ 320 NONAME - _ZTV24NmMessageSearchListModel @ 321 NONAME - _ZTV25NmAddAttachmentsOperation @ 322 NONAME - _ZTV25NmStoreEnvelopesOperation @ 323 NONAME - _ZTV26NmMessageCreationOperation @ 324 NONAME - _ZThn8_N18NmBaseClientPlugin10getActionsERK15NmActionRequestR5QListIP8NmActionE @ 325 NONAME - _ZThn8_N18NmBaseClientPluginD0Ev @ 326 NONAME - _ZThn8_N18NmBaseClientPluginD1Ev @ 327 NONAME - _ZN10NmUiEngine14folderTypeByIdE4NmIdS0_ @ 328 NONAME - _ZN24NmMessageSearchListModel14refreshContentEv @ 329 NONAME - _ZNK24NmMessageSearchListModel17searchResultCountEv @ 330 NONAME - _ZN10NmUiEngine18handleConnectEventE14NmConnectStateRK4NmIdi @ 331 NONAME + _ZN10NmUiEngine14folderTypeByIdE4NmIdS0_ @ 14 NONAME + _ZN10NmUiEngine14mailboxDeletedERK4NmId @ 15 NONAME + _ZN10NmUiEngine14messageDeletedERK4NmIdS2_S2_ @ 16 NONAME + _ZN10NmUiEngine14refreshMailboxERK4NmId @ 17 NONAME + _ZN10NmUiEngine14searchCompleteEv @ 18 NONAME + _ZN10NmUiEngine14syncStateEventE11NmSyncStateRK4NmId @ 19 NONAME + _ZN10NmUiEngine15connectionEventE14NmConnectStateRK4NmId @ 20 NONAME + _ZN10NmUiEngine15connectionStateERK4NmId @ 21 NONAME + _ZN10NmUiEngine15mReferenceCountE @ 22 NONAME DATA 4 + _ZN10NmUiEngine15messagePartFileERK4NmIdS2_S2_S2_ @ 23 NONAME + _ZN10NmUiEngine15releaseInstanceERPS_ @ 24 NONAME + _ZN10NmUiEngine16createNewMessageERK4NmId @ 25 NONAME + _ZN10NmUiEngine16fetchMessagePartERK4NmIdS2_S2_S2_ @ 26 NONAME + _ZN10NmUiEngine16handleMatchFoundERK4NmIdS2_ @ 27 NONAME + _ZN10NmUiEngine16mailboxListModelEv @ 28 NONAME + _ZN10NmUiEngine16messageListModelERK4NmIdS2_ @ 29 NONAME + _ZN10NmUiEngine16removeAttachmentERK9NmMessageRK4NmId @ 30 NONAME + _ZN10NmUiEngine16standardFolderIdERK4NmId12NmFolderType @ 31 NONAME + _ZN10NmUiEngine16staticMetaObjectE @ 32 NONAME DATA 16 + _ZN10NmUiEngine18createReplyMessageERK4NmIdS2_b @ 33 NONAME + _ZN10NmUiEngine18handleConnectEventE14NmConnectStateRK4NmIdi @ 34 NONAME + _ZN10NmUiEngine18handleMailboxEventE14NmMailboxEventRK5QListI4NmIdE @ 35 NONAME + _ZN10NmUiEngine18handleMessageEventE14NmMessageEventRK4NmIdRK5QListIS1_ES3_ @ 36 NONAME + _ZN10NmUiEngine18operationCompletedERK26NmOperationCompletionEvent @ 37 NONAME + _ZN10NmUiEngine19getStaticMetaObjectEv @ 38 NONAME + _ZN10NmUiEngine20contentToMessagePartERK4NmIdS2_S2_R13NmMessagePart @ 39 NONAME + _ZN10NmUiEngine20createForwardMessageERK4NmIdS2_ @ 40 NONAME + _ZN10NmUiEngine20handleSyncStateEventE11NmSyncStateRK26NmOperationCompletionEvent @ 41 NONAME + _ZN10NmUiEngine22sendOperationCompletedEv @ 42 NONAME + _ZN10NmUiEngine23refreshMailboxListModelEv @ 43 NONAME + _ZN10NmUiEngine25messageListModelForSearchERK4NmId @ 44 NONAME + _ZN10NmUiEngine28handleCompletedSendOperationEv @ 45 NONAME + _ZN10NmUiEngine6searchERK4NmIdRK11QStringList @ 46 NONAME + _ZN10NmUiEngine7messageERK4NmIdS2_S2_ @ 47 NONAME + _ZN10NmUiEngine8goOnlineERK4NmId @ 48 NONAME + _ZN10NmUiEngine8instanceEv @ 49 NONAME + _ZN10NmUiEngine9goOfflineERK4NmId @ 50 NONAME + _ZN10NmUiEngine9mInstanceE @ 51 NONAME DATA 4 + _ZN10NmUiEngine9syncStateERK4NmId @ 52 NONAME + _ZN10NmUiEngineC1Ev @ 53 NONAME + _ZN10NmUiEngineC2Ev @ 54 NONAME + _ZN10NmUiEngineD0Ev @ 55 NONAME + _ZN10NmUiEngineD1Ev @ 56 NONAME + _ZN10NmUiEngineD2Ev @ 57 NONAME + _ZN11NmOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 58 NONAME + _ZN11NmOperation11qt_metacastEPKc @ 59 NONAME + _ZN11NmOperation15cancelOperationEv @ 60 NONAME + _ZN11NmOperation15deleteOperationEv @ 61 NONAME + _ZN11NmOperation16staticMetaObjectE @ 62 NONAME DATA 16 + _ZN11NmOperation17completeOperationEi @ 63 NONAME + _ZN11NmOperation17doCancelOperationEv @ 64 NONAME + _ZN11NmOperation17runAsyncOperationEv @ 65 NONAME + _ZN11NmOperation18operationCancelledEv @ 66 NONAME + _ZN11NmOperation18operationCompletedEi @ 67 NONAME + _ZN11NmOperation19doCompleteOperationEv @ 68 NONAME + _ZN11NmOperation19getStaticMetaObjectEv @ 69 NONAME + _ZN11NmOperation23addPreliminaryOperationEPS_ @ 70 NONAME + _ZN11NmOperation23updateOperationProgressEi @ 71 NONAME + _ZN11NmOperation24operationProgressChangedEi @ 72 NONAME + _ZN11NmOperation25doUpdateOperationProgressEv @ 73 NONAME + _ZN11NmOperation34handlePreliminaryOperationFinishedEv @ 74 NONAME + _ZN11NmOperationC2Ev @ 75 NONAME + _ZN11NmOperationD0Ev @ 76 NONAME + _ZN11NmOperationD1Ev @ 77 NONAME + _ZN11NmOperationD2Ev @ 78 NONAME + _ZN13NmDataManager10folderByIdERK4NmIdS2_ @ 79 NONAME + _ZN13NmDataManager11listFoldersE4NmIdR5QListIP8NmFolderE @ 80 NONAME + _ZN13NmDataManager11mailboxByIdERK4NmId @ 81 NONAME + _ZN13NmDataManager11qt_metacallEN11QMetaObject4CallEiPPv @ 82 NONAME + _ZN13NmDataManager11qt_metacastEPKc @ 83 NONAME + _ZN13NmDataManager12envelopeByIdERK4NmIdS2_S2_ @ 84 NONAME + _ZN13NmDataManager12listMessagesERK4NmIdS2_R5QListIP17NmMessageEnvelopeE @ 85 NONAME + _ZN13NmDataManager13listMailboxesER5QListIP9NmMailboxE @ 86 NONAME + _ZN13NmDataManager14folderTypeByIdE4NmIdS0_ @ 87 NONAME + _ZN13NmDataManager14listMailboxIdsER5QListI4NmIdE @ 88 NONAME + _ZN13NmDataManager16staticMetaObjectE @ 89 NONAME DATA 16 + _ZN13NmDataManager19getStandardFolderIdERK4NmId12NmFolderType @ 90 NONAME + _ZN13NmDataManager19getStaticMetaObjectEv @ 91 NONAME + _ZN13NmDataManager20contentToMessagePartERK4NmIdS2_S2_R13NmMessagePart @ 92 NONAME + _ZN13NmDataManager6folderERK4NmIdS2_ @ 93 NONAME + _ZN13NmDataManager7mailboxERK4NmId @ 94 NONAME + _ZN13NmDataManager7messageERK4NmIdS2_S2_ @ 95 NONAME + _ZN13NmDataManagerC1Ev @ 96 NONAME + _ZN13NmDataManagerC2Ev @ 97 NONAME + _ZN13NmDataManagerD0Ev @ 98 NONAME + _ZN13NmDataManagerD1Ev @ 99 NONAME + _ZN13NmDataManagerD2Ev @ 100 NONAME + _ZN16NmFolderMetaData5setIdERK4NmId @ 101 NONAME + _ZN16NmFolderMetaData7setNameERK7QString @ 102 NONAME + _ZN16NmFolderMetaDataC1Ev @ 103 NONAME + _ZN16NmFolderMetaDataC2Ev @ 104 NONAME + _ZN16NmFolderMetaDataD0Ev @ 105 NONAME + _ZN16NmFolderMetaDataD1Ev @ 106 NONAME + _ZN16NmFolderMetaDataD2Ev @ 107 NONAME + _ZN17NmFolderListModel7refreshER5QListIP8NmFolderE @ 108 NONAME + _ZN17NmFolderListModelC1ER13NmDataManagerP7QObject @ 109 NONAME + _ZN17NmFolderListModelC2ER13NmDataManagerP7QObject @ 110 NONAME + _ZN17NmFolderListModelD0Ev @ 111 NONAME + _ZN17NmFolderListModelD1Ev @ 112 NONAME + _ZN17NmFolderListModelD2Ev @ 113 NONAME + _ZN17NmMailboxMetaData10setAddressERK7QString @ 114 NONAME + _ZN17NmMailboxMetaData5setIdERK4NmId @ 115 NONAME + _ZN17NmMailboxMetaData7setNameERK7QString @ 116 NONAME + _ZN17NmMailboxMetaData9setIconIdERK4NmId @ 117 NONAME + _ZN17NmMailboxMetaDataC1Ev @ 118 NONAME + _ZN17NmMailboxMetaDataC2Ev @ 119 NONAME + _ZN17NmMailboxMetaDataD0Ev @ 120 NONAME + _ZN17NmMailboxMetaDataD1Ev @ 121 NONAME + _ZN17NmMailboxMetaDataD2Ev @ 122 NONAME + _ZN18NmBaseClientPlugin10getActionsERK15NmActionRequestR5QListIP8NmActionE @ 123 NONAME + _ZN18NmBaseClientPlugin10markAsReadEv @ 124 NONAME + _ZN18NmBaseClientPlugin11forwardMailEv @ 125 NONAME + _ZN18NmBaseClientPlugin11openMessageEv @ 126 NONAME + _ZN18NmBaseClientPlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 127 NONAME + _ZN18NmBaseClientPlugin11qt_metacastEPKc @ 128 NONAME + _ZN18NmBaseClientPlugin12markAsUnreadEv @ 129 NONAME + _ZN18NmBaseClientPlugin12replyAllMailEv @ 130 NONAME + _ZN18NmBaseClientPlugin13createNewMailEv @ 131 NONAME + _ZN18NmBaseClientPlugin13deleteMessageEv @ 132 NONAME + _ZN18NmBaseClientPlugin13handleRequestE23NmActionResponseCommandRK15NmActionRequest @ 133 NONAME + _ZN18NmBaseClientPlugin14openAttachmentEv @ 134 NONAME + _ZN18NmBaseClientPlugin14setPriorityLowEv @ 135 NONAME + _ZN18NmBaseClientPlugin15setPriorityHighEv @ 136 NONAME + _ZN18NmBaseClientPlugin16removeAttachmentEv @ 137 NONAME + _ZN18NmBaseClientPlugin16staticMetaObjectE @ 138 NONAME DATA 16 + _ZN18NmBaseClientPlugin17setPriorityNormalEv @ 139 NONAME + _ZN18NmBaseClientPlugin18mailboxListChangedERK4NmIdN10NmSettings16MailboxEventTypeE @ 140 NONAME + _ZN18NmBaseClientPlugin19getStaticMetaObjectEv @ 141 NONAME + _ZN18NmBaseClientPlugin22mailboxPropertyChangedERK4NmId8QVariantS3_ @ 142 NONAME + _ZN18NmBaseClientPlugin22updateEnvelopePropertyE20NmEnvelopeProperties @ 143 NONAME + _ZN18NmBaseClientPlugin24createEditorViewCommandsERK15NmActionRequestR5QListIP8NmActionE @ 144 NONAME + _ZN18NmBaseClientPlugin24createViewerViewCommandsERK15NmActionRequestR5QListIP8NmActionE @ 145 NONAME + _ZN18NmBaseClientPlugin25createMessageListCommandsERK15NmActionRequestR5QListIP8NmActionE @ 146 NONAME + _ZN18NmBaseClientPlugin26createNewMailViewerToolBarEv @ 147 NONAME + _ZN18NmBaseClientPlugin27deleteMessageFromViewerViewEv @ 148 NONAME + _ZN18NmBaseClientPlugin6attachEv @ 149 NONAME + _ZN18NmBaseClientPlugin6searchEv @ 150 NONAME + _ZN18NmBaseClientPlugin7refreshEv @ 151 NONAME + _ZN18NmBaseClientPlugin8goOnlineERK4NmId @ 152 NONAME + _ZN18NmBaseClientPlugin8sendMailEv @ 153 NONAME + _ZN18NmBaseClientPlugin8settingsEv @ 154 NONAME + _ZN18NmBaseClientPlugin9goOfflineERK4NmId @ 155 NONAME + _ZN18NmBaseClientPlugin9replyMailEv @ 156 NONAME + _ZN18NmBaseClientPluginC2Ev @ 157 NONAME + _ZN18NmBaseClientPluginD0Ev @ 158 NONAME + _ZN18NmBaseClientPluginD1Ev @ 159 NONAME + _ZN18NmBaseClientPluginD2Ev @ 160 NONAME + _ZN18NmMailboxListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 161 NONAME + _ZN18NmMailboxListModel11qt_metacastEPKc @ 162 NONAME + _ZN18NmMailboxListModel16refreshModelItemERK4NmIdb @ 163 NONAME + _ZN18NmMailboxListModel16staticMetaObjectE @ 164 NONAME DATA 16 + _ZN18NmMailboxListModel17createMailboxItemEPK9NmMailbox @ 165 NONAME + _ZN18NmMailboxListModel18handleMailboxEventE14NmMailboxEventRK5QListI4NmIdE @ 166 NONAME + _ZN18NmMailboxListModel19getStaticMetaObjectEv @ 167 NONAME + _ZN18NmMailboxListModel7refreshER5QListIP9NmMailboxE @ 168 NONAME + _ZN18NmMailboxListModelC1ER13NmDataManagerP7QObject @ 169 NONAME + _ZN18NmMailboxListModelC2ER13NmDataManagerP7QObject @ 170 NONAME + _ZN18NmMailboxListModelD0Ev @ 171 NONAME + _ZN18NmMailboxListModelD1Ev @ 172 NONAME + _ZN18NmMailboxListModelD2Ev @ 173 NONAME + _ZN18NmMessageListModel10removeItemEiR22NmMessageListModelItem @ 174 NONAME + _ZN18NmMessageListModel11qt_metacallEN11QMetaObject4CallEiPPv @ 175 NONAME + _ZN18NmMessageListModel11qt_metacastEPKc @ 176 NONAME + _ZN18NmMessageListModel11setDividersEb @ 177 NONAME + _ZN18NmMessageListModel11setNewParamEP14NmUiStartParam @ 178 NONAME + _ZN18NmMessageListModel13itemFromModelERK4NmId @ 179 NONAME + _ZN18NmMessageListModel14dividersActiveEv @ 180 NONAME + _ZN18NmMessageListModel14updateEnvelopeE20NmEnvelopePropertiesRK4NmId @ 181 NONAME + _ZN18NmMessageListModel16currentMailboxIdEv @ 182 NONAME + _ZN18NmMessageListModel16staticMetaObjectE @ 183 NONAME DATA 16 + _ZN18NmMessageListModel17createMessageItemEP17NmMessageEnvelope @ 184 NONAME + _ZN18NmMessageListModel18handleMessageEventE14NmMessageEventRK4NmIdRK5QListIS1_E @ 185 NONAME + _ZN18NmMessageListModel19getStaticMetaObjectEv @ 186 NONAME + _ZN18NmMessageListModel21dividerInsertionIndexEi @ 187 NONAME + _ZN18NmMessageListModel21setEnvelopePropertiesE20NmEnvelopePropertiesRK5QListI4NmIdE @ 188 NONAME + _ZN18NmMessageListModel21updateMessageEnvelopeERK4NmIdS2_S2_ @ 189 NONAME + _ZN18NmMessageListModel22createTitleDividerItemEP17NmMessageEnvelope @ 190 NONAME + _ZN18NmMessageListModel22insertDividerIntoModelEP17NmMessageEnvelopei @ 191 NONAME + _ZN18NmMessageListModel22insertMessageIntoModelEP17NmMessageEnvelopeib @ 192 NONAME + _ZN18NmMessageListModel22removeMessageFromModelERK4NmId @ 193 NONAME + _ZN18NmMessageListModel25insertNewMessageIntoModelERK4NmIdS2_S2_ @ 194 NONAME + _ZN18NmMessageListModel7changedERK17NmMessageEnvelopeS2_ @ 195 NONAME + _ZN18NmMessageListModel7refreshE4NmIdS0_RK5QListIP17NmMessageEnvelopeE @ 196 NONAME + _ZN18NmMessageListModelC1ER13NmDataManagerP7QObject @ 197 NONAME + _ZN18NmMessageListModelC2ER13NmDataManagerP7QObject @ 198 NONAME + _ZN18NmMessageListModelD0Ev @ 199 NONAME + _ZN18NmMessageListModelD1Ev @ 200 NONAME + _ZN18NmMessageListModelD2Ev @ 201 NONAME + _ZN19NmDataPluginFactory10loadPluginERK4QDirRK7QString @ 202 NONAME + _ZN19NmDataPluginFactory12mPluginArrayE @ 203 NONAME DATA 4 + _ZN19NmDataPluginFactory14pluginInstanceE4NmId @ 204 NONAME + _ZN19NmDataPluginFactory15mReferenceCountE @ 205 NONAME DATA 4 + _ZN19NmDataPluginFactory15pluginInstancesEv @ 206 NONAME + _ZN19NmDataPluginFactory15releaseInstanceERPS_ @ 207 NONAME + _ZN19NmDataPluginFactory17interfaceInstanceE4NmId @ 208 NONAME + _ZN19NmDataPluginFactory17interfaceInstanceEP7QObject @ 209 NONAME + _ZN19NmDataPluginFactory18mPluginLoaderArrayE @ 210 NONAME DATA 4 + _ZN19NmDataPluginFactory8instanceEv @ 211 NONAME + _ZN19NmDataPluginFactory9mInstanceE @ 212 NONAME DATA 4 + _ZN19NmDataPluginFactoryC1Ev @ 213 NONAME + _ZN19NmDataPluginFactoryC2Ev @ 214 NONAME + _ZN19NmDataPluginFactoryD0Ev @ 215 NONAME + _ZN19NmDataPluginFactoryD1Ev @ 216 NONAME + _ZN19NmDataPluginFactoryD2Ev @ 217 NONAME + _ZN22NmCheckOutboxOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 218 NONAME + _ZN22NmCheckOutboxOperation11qt_metacastEPKc @ 219 NONAME + _ZN22NmCheckOutboxOperation16staticMetaObjectE @ 220 NONAME DATA 16 + _ZN22NmCheckOutboxOperation19getStaticMetaObjectEv @ 221 NONAME + _ZN22NmMessageListModelItem11envelopePtrEv @ 222 NONAME + _ZN22NmMessageListModelItem11setEnvelopeEP17NmMessageEnvelope @ 223 NONAME + _ZN22NmMessageListModelItem11setEnvelopeERK17NmMessageEnvelope @ 224 NONAME + _ZN22NmMessageListModelItem11setExpandedEb @ 225 NONAME + _ZN22NmMessageListModelItem11setItemTypeENS_17NmMessageItemTypeE @ 226 NONAME + _ZN22NmMessageListModelItem15setTitleDividerERK7QString @ 227 NONAME + _ZN22NmMessageListModelItem19callEmitDataChangedEv @ 228 NONAME + _ZN22NmMessageListModelItemC1Ev @ 229 NONAME + _ZN22NmMessageListModelItemC2Ev @ 230 NONAME + _ZN22NmMessageListModelItemD0Ev @ 231 NONAME + _ZN22NmMessageListModelItemD1Ev @ 232 NONAME + _ZN22NmMessageListModelItemD2Ev @ 233 NONAME + _ZN25NmAddAttachmentsOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 234 NONAME + _ZN25NmAddAttachmentsOperation11qt_metacastEPKc @ 235 NONAME + _ZN25NmAddAttachmentsOperation16staticMetaObjectE @ 236 NONAME DATA 16 + _ZN25NmAddAttachmentsOperation19getStaticMetaObjectEv @ 237 NONAME + _ZN25NmAddAttachmentsOperation21completeOperationPartERK7QStringRK4NmIdi @ 238 NONAME + _ZN25NmAddAttachmentsOperation22operationPartCompletedERK7QStringRK4NmIdi @ 239 NONAME + _ZN25NmAddAttachmentsOperationC2Ev @ 240 NONAME + _ZN25NmAddAttachmentsOperationD0Ev @ 241 NONAME + _ZN25NmAddAttachmentsOperationD1Ev @ 242 NONAME + _ZN25NmAddAttachmentsOperationD2Ev @ 243 NONAME + _ZN25NmStoreEnvelopesOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 244 NONAME + _ZN25NmStoreEnvelopesOperation11qt_metacastEPKc @ 245 NONAME + _ZN25NmStoreEnvelopesOperation16staticMetaObjectE @ 246 NONAME DATA 16 + _ZN25NmStoreEnvelopesOperation19getStaticMetaObjectEv @ 247 NONAME + _ZN26NmMessageCreationOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 248 NONAME + _ZN26NmMessageCreationOperation11qt_metacastEPKc @ 249 NONAME + _ZN26NmMessageCreationOperation16staticMetaObjectE @ 250 NONAME DATA 16 + _ZN26NmMessageCreationOperation19getStaticMetaObjectEv @ 251 NONAME + _ZN7NmIcons7getIconENS_4IconE @ 252 NONAME + _ZN7NmIcons9freeIconsEv @ 253 NONAME + _ZNK10NmUiEngine10metaObjectEv @ 254 NONAME + _ZNK10NmUiEngine16isSendingMessageEv @ 255 NONAME + _ZNK10NmUiEngine16messageBeingSentEv @ 256 NONAME + _ZNK11NmOperation10metaObjectEv @ 257 NONAME + _ZNK11NmOperation9isRunningEv @ 258 NONAME + _ZNK13NmDataManager10metaObjectEv @ 259 NONAME + _ZNK16NmFolderMetaData2idEv @ 260 NONAME + _ZNK16NmFolderMetaData4nameEv @ 261 NONAME + _ZNK17NmFolderListModel11columnCountERK11QModelIndex @ 262 NONAME + _ZNK17NmFolderListModel4dataERK11QModelIndexi @ 263 NONAME + _ZNK17NmFolderListModel6parentERK11QModelIndex @ 264 NONAME + _ZNK17NmFolderListModel8rowCountERK11QModelIndex @ 265 NONAME + _ZNK17NmMailboxMetaData2idEv @ 266 NONAME + _ZNK17NmMailboxMetaData4nameEv @ 267 NONAME + _ZNK17NmMailboxMetaData6IconIdEv @ 268 NONAME + _ZNK17NmMailboxMetaData7addressEv @ 269 NONAME + _ZNK18NmBaseClientPlugin10metaObjectEv @ 270 NONAME + _ZNK18NmMailboxListModel10metaObjectEv @ 271 NONAME + _ZNK18NmMailboxListModel4dataERK11QModelIndexi @ 272 NONAME + _ZNK18NmMessageListModel10metaObjectEv @ 273 NONAME + _ZNK18NmMessageListModel17getInsertionIndexERK17NmMessageEnvelope @ 274 NONAME + _ZNK18NmMessageListModel30messagesBelongUnderSameDividerEPK17NmMessageEnvelopeS2_ @ 275 NONAME + _ZNK18NmMessageListModel4dataERK11QModelIndexi @ 276 NONAME + _ZNK22NmCheckOutboxOperation10metaObjectEv @ 277 NONAME + _ZNK22NmMessageListModelItem12titleDividerEv @ 278 NONAME + _ZNK22NmMessageListModelItem8envelopeEv @ 279 NONAME + _ZNK22NmMessageListModelItem8expandedEv @ 280 NONAME + _ZNK22NmMessageListModelItem8itemTypeEv @ 281 NONAME + _ZNK25NmAddAttachmentsOperation10metaObjectEv @ 282 NONAME + _ZNK25NmStoreEnvelopesOperation10metaObjectEv @ 283 NONAME + _ZNK26NmMessageCreationOperation10metaObjectEv @ 284 NONAME + _ZTI10NmUiEngine @ 285 NONAME + _ZTI11NmOperation @ 286 NONAME + _ZTI13NmDataManager @ 287 NONAME + _ZTI16NmFolderMetaData @ 288 NONAME + _ZTI17NmFolderListModel @ 289 NONAME + _ZTI17NmMailboxMetaData @ 290 NONAME + _ZTI18NmBaseClientPlugin @ 291 NONAME + _ZTI18NmMailboxListModel @ 292 NONAME + _ZTI18NmMessageListModel @ 293 NONAME + _ZTI19NmDataPluginFactory @ 294 NONAME + _ZTI22NmCheckOutboxOperation @ 295 NONAME + _ZTI22NmMessageListModelItem @ 296 NONAME + _ZTI25NmAddAttachmentsOperation @ 297 NONAME + _ZTI25NmStoreEnvelopesOperation @ 298 NONAME + _ZTI26NmMessageCreationOperation @ 299 NONAME + _ZTV10NmUiEngine @ 300 NONAME + _ZTV11NmOperation @ 301 NONAME + _ZTV13NmDataManager @ 302 NONAME + _ZTV16NmFolderMetaData @ 303 NONAME + _ZTV17NmFolderListModel @ 304 NONAME + _ZTV17NmMailboxMetaData @ 305 NONAME + _ZTV18NmBaseClientPlugin @ 306 NONAME + _ZTV18NmMailboxListModel @ 307 NONAME + _ZTV18NmMessageListModel @ 308 NONAME + _ZTV19NmDataPluginFactory @ 309 NONAME + _ZTV22NmCheckOutboxOperation @ 310 NONAME + _ZTV22NmMessageListModelItem @ 311 NONAME + _ZTV25NmAddAttachmentsOperation @ 312 NONAME + _ZTV25NmStoreEnvelopesOperation @ 313 NONAME + _ZTV26NmMessageCreationOperation @ 314 NONAME + _ZThn8_N18NmBaseClientPlugin10getActionsERK15NmActionRequestR5QListIP8NmActionE @ 315 NONAME + _ZThn8_N18NmBaseClientPluginD0Ev @ 316 NONAME + _ZThn8_N18NmBaseClientPluginD1Ev @ 317 NONAME + _ZN10NmUiEngine18updateActiveFolderERK4NmIdS2_ @ 318 NONAME + _ZN19NmDataPluginFactory33applicationStateInterfaceInstanceE4NmId @ 319 NONAME + _ZN19NmDataPluginFactory33applicationStateInterfaceInstanceEP7QObject @ 320 NONAME + _ZN10NmUiEngine17fetchMessagePartsERK4NmIdS2_S2_RK5QListIS0_E @ 321 NONAME + _ZN18NmMessageListModel18setIgnoreFolderIdsEb @ 322 NONAME diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/inc/nmapplicationstateinterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/nmailuiengine/inc/nmapplicationstateinterface.h Thu May 27 12:43:55 2010 +0300 @@ -0,0 +1,37 @@ +/* +* 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: +* +*/ + +#ifndef NMAPPLICATIONSTATEINTERFACE_H_ +#define NMAPPLICATIONSTATEINTERFACE_H_ + + +/*! + \class NmApplicationStateInterface + \brief provides an interface to indicate application state information to protocol plugins +*/ +class NmApplicationStateInterface +{ +public: + virtual void updateActiveFolder(const NmId &mailboxId, const NmId &folderId) = 0; +}; + +Q_DECLARE_INTERFACE(NmApplicationStateInterface, "sf.app.commonmail.emailuis.nmailuiengine.NmApplicationStateInterface/1.0") + + +#endif /* NMAPPLICATIONSTATEINTERFACE_H_ */ + + diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/inc/nmbaseclientplugin.h --- a/emailuis/nmailuiengine/inc/nmbaseclientplugin.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/inc/nmbaseclientplugin.h Thu May 27 12:43:55 2010 +0300 @@ -72,12 +72,12 @@ protected: virtual quint32 pluginId() = 0; + void handleRequest(NmActionResponseCommand command, const NmActionRequest &request); private: void createMessageListCommands(const NmActionRequest &request, QList &actionList); void createEditorViewCommands(const NmActionRequest &request, QList &actionList); void createViewerViewCommands(const NmActionRequest &request, QList &actionList); - void handleRequest(NmActionResponseCommand command, const NmActionRequest &request); void updateEnvelopeProperty(NmEnvelopeProperties property); protected: diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/inc/nmdatamanager.h --- a/emailuis/nmailuiengine/inc/nmdatamanager.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/inc/nmdatamanager.h Thu May 27 12:43:55 2010 +0300 @@ -64,6 +64,8 @@ NmMessagePart &messagePart); NmId getStandardFolderId(const NmId &mailboxId, NmFolderType folderType); + + NmFolderType folderTypeById(NmId mailboxId, NmId folderId); private: NmDataPluginFactory *mFactory; diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/inc/nmdatapluginfactory.h --- a/emailuis/nmailuiengine/inc/nmdatapluginfactory.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/inc/nmdatapluginfactory.h Thu May 27 12:43:55 2010 +0300 @@ -22,6 +22,7 @@ #include "nmuienginedef.h" class NmDataPluginInterface; +class NmApplicationStateInterface; class QDir; class QPluginLoader; @@ -37,12 +38,14 @@ static void releaseInstance(NmDataPluginFactory *&instance); NmDataPluginInterface *interfaceInstance(QObject *plugin); NmDataPluginInterface *interfaceInstance(NmId mailboxId); + NmApplicationStateInterface *applicationStateInterfaceInstance(NmId mailboxId); QObject *pluginInstance(NmId mailboxId); QList *pluginInstances(); QObject *loadPlugin( const QDir &pluginDir, const QString& pluginName); private: + NmApplicationStateInterface *applicationStateInterfaceInstance(QObject *plugin); NmDataPluginFactory(); virtual ~NmDataPluginFactory(); static NmDataPluginFactory *mInstance; // owned diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/inc/nmdataplugininterface.h --- a/emailuis/nmailuiengine/inc/nmdataplugininterface.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/inc/nmdataplugininterface.h Thu May 27 12:43:55 2010 +0300 @@ -104,6 +104,12 @@ const NmId &folderId, const NmId &messageId, const NmId &messagePartId) = 0; + + virtual QPointer fetchMessageParts( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const QList &messagePartIds) = 0; virtual XQSharableFile messagePartFile( const NmId &mailboxId, diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/inc/nmmailboxmetadata.h --- a/emailuis/nmailuiengine/inc/nmmailboxmetadata.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/inc/nmmailboxmetadata.h Thu May 27 12:43:55 2010 +0300 @@ -36,6 +36,8 @@ void setId(const NmId &id); NmId IconId() const; void setIconId(const NmId &id); + QString address() const; + void setAddress(const QString &address); private: diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/inc/nmmessagelistmodel.h --- a/emailuis/nmailuiengine/inc/nmmessagelistmodel.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/inc/nmmessagelistmodel.h Thu May 27 12:43:55 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 - 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" @@ -20,10 +20,9 @@ #include +#include "nmcommon.h" +#include "nmmessagelistmodelitem.h" #include "nmuienginedef.h" -#include "nmcommon.h" - -#include "nmmessagelistmodelitem.h" #include "nmuiviewids.h" class NmMessage; @@ -31,73 +30,104 @@ class QModelIndex; class NmMessageEnvelope; + class NMUIENGINE_EXPORT NmMessageListModel : public QStandardItemModel { Q_OBJECT + public: - NmMessageListModel( - NmDataManager &dataManager, - QObject *parent = 0); + + NmMessageListModel(NmDataManager &dataManager, + QObject *parent = 0); + virtual ~NmMessageListModel(); + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - void refresh( - const NmId mailboxId, - const NmId folderId, - const QList &messageEnvelopeList); + + void refresh(const NmId mailboxId, + const NmId folderId, + const QList &messageEnvelopeList); + bool dividersActive(); - // This function is temporary, to be removed when - // divider state can be modified with settings + + // This function is temporary, to be removed when divider state can be + // modified with settings. void setDividers(bool active); - void setEnvelopeProperties( - NmEnvelopeProperties property, - const QList &messageIds); + + void setEnvelopeProperties(NmEnvelopeProperties property, + const QList &messageIds); + NmId currentMailboxId(); + + void setIgnoreFolderIds(bool ignore); + + public slots: - void handleMessageEvent( - NmMessageEvent event, - const NmId &folderId, - const QList &messageIds); + + void handleMessageEvent(NmMessageEvent event, + const NmId &folderId, + const QList &messageIds); + private: + bool messagesBelongUnderSameDivider( const NmMessageEnvelope *message1, const NmMessageEnvelope *message2) const; + void insertDividerIntoModel( NmMessageEnvelope *messageForDivider, int parentRow); + void insertMessageIntoModel( NmMessageEnvelope *messageEnvelope, int childRow, bool emitSignal); + void insertNewMessageIntoModel( const NmId &mailboxId, const NmId &folderId, const NmId &msgId); - int getInsertionIndex( - const NmMessageEnvelope &envelope) const; + + int getInsertionIndex(const NmMessageEnvelope &envelope) const; + int dividerInsertionIndex(int messageIndex); + NmMessageListModelItem *createTitleDividerItem(NmMessageEnvelope *messageForDivider); + NmMessageListModelItem *createMessageItem(NmMessageEnvelope *message); + void removeMessageFromModel(const NmId &msgId); + void removeItem(int row, NmMessageListModelItem &item); + NmMessageListModelItem *itemFromModel(const NmId &messageId); - bool changed(const NmMessageEnvelope &first, const NmMessageEnvelope &second); + + bool changed(const NmMessageEnvelope &first, + const NmMessageEnvelope &second); + void updateMessageEnvelope(const NmId &mailboxId, - const NmId &folderId, - const NmId &msgId); + const NmId &folderId, + const NmId &msgId); + void updateEnvelope(NmEnvelopeProperties property, const NmId &msgId); + signals: + void setNewParam(NmUiStartParam *startParam); - -private: - NmDataManager &mDataManager; // not owned + + +private: // Data + + NmDataManager &mDataManager; bool mDividersActive; - NmMessageListModelItem *mParentPtr; // not owned + NmMessageListModelItem *mParentPtr; // Not owned NmId mCurrentMailboxId; NmId mCurrentFolderId; - + NmFolderType mCurrentFolderType; + bool mIgnoreFolderIds; }; #endif /* NMMESSAGELISTMODEL_H_*/ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/inc/nmmessagesearchlistmodel.h --- a/emailuis/nmailuiengine/inc/nmmessagesearchlistmodel.h Fri May 14 15:41:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* -* 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: -* -*/ - -#ifndef NMMESSAGESEARCHLISTMODEL_H_ -#define NMMESSAGESEARCHLISTMODEL_H_ - -#include -#include - -#include "nmuienginedef.h" // For NMUIENGINE_EXPORT -#include "nmcommon.h" - - -class NMUIENGINE_EXPORT NmMessageSearchListModel : public QSortFilterProxyModel -{ - Q_OBJECT - -public: // Construction and destruction - - NmMessageSearchListModel(QObject *parent = 0); - - ~NmMessageSearchListModel(); - - -public: - - void clearSearchResults(); - - int searchResultCount() const; - - -public: // From QSortFilterProxyModel - - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - - -protected: // From QSortFilterProxyModel - - bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const; - - -public slots: - - bool addSearchResult(const NmId &messageId); - - void refreshContent(); - - -private: // Data - - QVector mSearchResults; -}; - -#endif /* NMMESSAGESEARCHLISTMODEL_H_ */ - -// End of file. diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/inc/nmuiengine.h --- a/emailuis/nmailuiengine/inc/nmuiengine.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/inc/nmuiengine.h Thu May 27 12:43:55 2010 +0300 @@ -28,7 +28,6 @@ class QAbstractItemModel; class NmMailboxListModel; class NmMessageListModel; -class NmMessageSearchListModel; class NmDataManager; class NmDataPluginFactory; class NmMailboxMetaData; @@ -50,12 +49,17 @@ public: static NmUiEngine *instance(); + static void releaseInstance(NmUiEngine *&instance); NmMailboxListModel &mailboxListModel(); + void refreshMailboxListModel(); - NmMessageListModel &messageListModel(const NmId &mailboxId, const NmId &folderId); - NmMessageSearchListModel &messageSearchListModel(QAbstractItemModel *sourceModel); + + NmMessageListModel &messageListModel(const NmId &mailboxId, + const NmId &folderId); + + NmMessageListModel &messageListModelForSearch(const NmId &mailboxId); NmId standardFolderId(const NmId &mailboxId, NmFolderType folderType); @@ -75,6 +79,12 @@ const NmId &messageId, const NmId &messagePartId); + QPointer fetchMessageParts( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const QList &messagePartIds); + XQSharableFile messagePartFile( const NmId &mailboxId, const NmId &folderId, @@ -123,12 +133,12 @@ int goOffline(const NmId &mailboxId); - int removeMessage( - const NmId &mailboxId, - const NmId &folderId, - const NmId &messageId); + int removeMessage(const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId); - void sendMessage(NmMessage *message, const QList &preliminaryOperations); + void sendMessage(NmMessage *message, + const QList &preliminaryOperations); bool isSendingMessage() const; @@ -145,6 +155,7 @@ QPointer checkOutbox(const NmId &mailboxId); NmSyncState syncState(const NmId& mailboxId); + NmConnectState connectionState(const NmId& mailboxId); int search(const NmId &mailboxId, @@ -154,37 +165,54 @@ NmFolderType folderTypeById(NmId mailboxId, NmId folderId); + void updateActiveFolder(const NmId &mailboxId, const NmId &folderId); + public slots: + void handleCompletedSendOperation(); - void handleSyncStateEvent(NmSyncState syncState, const NmOperationCompletionEvent &event); - void handleConnectEvent(NmConnectState connectState, const NmId &mailboxId, const int errorCode); + + void handleSyncStateEvent(NmSyncState syncState, + const NmOperationCompletionEvent &event); + + void handleConnectEvent(NmConnectState connectState, + const NmId &mailboxId, + const int errorCode); + private slots: - void handleMessageEvent( - NmMessageEvent event, - const NmId &folderId, - const QList &messageIds, - const NmId& mailboxId); + + void handleMessageEvent(NmMessageEvent event, + const NmId &folderId, + const QList &messageIds, + const NmId& mailboxId); void handleMailboxEvent(NmMailboxEvent event, const QList &mailboxIds); + void handleMatchFound(const NmId &messageId, const NmId &folderId); + signals: + void syncStateEvent(NmSyncState, const NmId &); void connectionEvent(NmConnectState, const NmId &); void operationCompleted(const NmOperationCompletionEvent &event); void sendOperationCompleted(); void messageDeleted(const NmId &mailboxId, const NmId &folderId, const NmId &messageId); void mailboxDeleted(const NmId &mailboxId); - void matchFound(const NmId &); + void matchFound(const NmId &, const NmId &); void searchComplete(); - + + private: + NmUiEngine(); + virtual ~NmUiEngine(); -private: + +private: // Data + static NmUiEngine *mInstance; static int mReferenceCount; @@ -192,7 +220,7 @@ NmDataManager *mDataManager; // Owned NmMailboxListModel *mMailboxListModel; // Owned NmMessageListModel *mMessageListModel; // Owned - NmMessageSearchListModel *mMessageSearchListModel; // Owned + NmMessageListModel *mMessageSearchListModel; // Owned QPointer mSendOperation; // Not owned }; diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/inc/nmuiengineheaders.h --- a/emailuis/nmailuiengine/inc/nmuiengineheaders.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/inc/nmuiengineheaders.h Thu May 27 12:43:55 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 - 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" @@ -47,7 +47,6 @@ #include "nmmailboxlistmodel.h" #include "nmfolderlistmodel.h" #include "nmmessagelistmodel.h" -#include "nmmessagesearchlistmodel.h" #include "nmdatapluginfactory.h" #include "nmdataplugininterface.h" #include "nmmailboxlistmodelitem.h" @@ -63,6 +62,7 @@ #include "nmmessagecreationoperation.h" #include "nmcheckoutboxoperation.h" #include "nmmessagecreationoperation.h" +#include "nmapplicationstateinterface.h" // nmailui #include "nmactionrequest.h" diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/nmailuiengine.pro --- a/emailuis/nmailuiengine/nmailuiengine.pro Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/nmailuiengine.pro Thu May 27 12:43:55 2010 +0300 @@ -1,4 +1,4 @@ -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# Copyright (c) 2009 - 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" @@ -36,7 +36,6 @@ inc/nmfoldermetadata.h \ inc/nmmessagelistmodelitem.h \ inc/nmmessagelistmodel.h \ - inc/nmmessagesearchlistmodel.h \ inc/nmuienginedef.h \ inc/nmdataplugininterface.h \ inc/nmicons.h \ @@ -45,7 +44,8 @@ inc/nmaddattachmentsoperation.h \ inc/nmmessagesendingoperation.h \ inc/nmcheckoutboxoperation.h \ - inc/nmstoreenvelopesoperation.h + inc/nmstoreenvelopesoperation.h \ + inc/nmapplicationstateinterface.h SOURCES += src/nmuiengine.cpp \ src/nmdatamanager.cpp \ @@ -56,7 +56,6 @@ src/nmfoldermetadata.cpp \ src/nmmessagelistmodelitem.cpp \ src/nmmessagelistmodel.cpp \ - src/nmmessagesearchlistmodel.cpp \ src/nmdatapluginfactory.cpp \ src/nmicons.cpp \ src/nmbaseclientplugin.cpp \ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/src/nmbaseclientplugin.cpp --- a/emailuis/nmailuiengine/src/nmbaseclientplugin.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/src/nmbaseclientplugin.cpp Thu May 27 12:43:55 2010 +0300 @@ -240,6 +240,7 @@ */ void NmBaseClientPlugin::settings() { + handleRequest(NmActionResponseCommandSettings, mMenuRequest); } /*! diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/src/nmdatamanager.cpp --- a/emailuis/nmailuiengine/src/nmdatamanager.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/src/nmdatamanager.cpp Thu May 27 12:43:55 2010 +0300 @@ -280,4 +280,32 @@ } +/*! + Returns folder type by id + \param mailboxId The ID of the mailbox containing the folder + + \param folderId The ID of the folder + + \return Folder type +*/ +NmFolderType NmDataManager::folderTypeById(NmId mailboxId, NmId folderId) +{ + NmFolderType folderType(NmFolderOther); + if (getStandardFolderId(mailboxId,NmFolderInbox)==folderId){ + folderType=NmFolderInbox; + } + else if (getStandardFolderId(mailboxId,NmFolderOutbox)==folderId){ + folderType=NmFolderOutbox; + } + else if (getStandardFolderId(mailboxId,NmFolderDrafts)==folderId){ + folderType=NmFolderDrafts; + } + else if (getStandardFolderId(mailboxId,NmFolderSent)==folderId){ + folderType=NmFolderSent; + } + else if (getStandardFolderId(mailboxId,NmFolderDeleted)==folderId){ + folderType=NmFolderDeleted; + } + return folderType; +} diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/src/nmdatapluginfactory.cpp --- a/emailuis/nmailuiengine/src/nmdatapluginfactory.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/src/nmdatapluginfactory.cpp Thu May 27 12:43:55 2010 +0300 @@ -110,6 +110,26 @@ /*! */ +NmApplicationStateInterface *NmDataPluginFactory::applicationStateInterfaceInstance(QObject *plugin) +{ + NmApplicationStateInterface *pluginInterface = NULL; + if (plugin) { + pluginInterface= qobject_cast(plugin); + } + return pluginInterface; +} + +/*! + + */ +NmApplicationStateInterface *NmDataPluginFactory::applicationStateInterfaceInstance(NmId mailboxId) +{ + return applicationStateInterfaceInstance(pluginInstance(mailboxId)); +} + +/*! + + */ QObject *NmDataPluginFactory::pluginInstance(NmId mailboxId) { QObject *value(NULL); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/src/nmmailboxlistmodel.cpp --- a/emailuis/nmailuiengine/src/nmmailboxlistmodel.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/src/nmmailboxlistmodel.cpp Thu May 27 12:43:55 2010 +0300 @@ -30,7 +30,7 @@ /*! Constructor */ -NmMailboxListModel::NmMailboxListModel(NmDataManager &dataManager, QObject *parent) +NmMailboxListModel::NmMailboxListModel(NmDataManager &dataManager, QObject *parent) :QStandardItemModel(parent), mDataManager(dataManager) { @@ -177,6 +177,7 @@ NmMailboxMetaData *newMeta = new NmMailboxMetaData(); newMeta->setId(mailbox->id()); newMeta->setName(mailbox->name()); + newMeta->setAddress(mailbox->address().address()); NmMailboxListModelItem *item = new NmMailboxListModelItem(); item->setItemMetaData(newMeta); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/src/nmmailboxmetadata.cpp --- a/emailuis/nmailuiengine/src/nmmailboxmetadata.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/src/nmmailboxmetadata.cpp Thu May 27 12:43:55 2010 +0300 @@ -34,6 +34,7 @@ QString mName; NmId mId; NmId mIconId; + QString mAddress; }; @@ -102,7 +103,18 @@ d->mIconId = id; } - +/*! + Get mailbox address +*/ +QString NmMailboxMetaData::address() const +{ + return d->mAddress; +} - - +/*! + Set Mailbox address as \a address +*/ +void NmMailboxMetaData::setAddress(const QString &address) +{ + d->mAddress = address; +} diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/src/nmmessagelistmodel.cpp --- a/emailuis/nmailuiengine/src/nmmessagelistmodel.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/src/nmmessagelistmodel.cpp Thu May 27 12:43:55 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 - 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" @@ -17,6 +17,7 @@ #include "nmuiengineheaders.h" +static const int NmFolderTypeRole = Qt::UserRole+1; /*! \class NmMessageListModel @@ -29,77 +30,102 @@ */ /*! - Constructor - */ -NmMessageListModel::NmMessageListModel(NmDataManager &dataManager, QObject *parent) -:QStandardItemModel(parent), -mDataManager(dataManager), -mDividersActive(false), -mParentPtr(NULL) + Class constructor. +*/ +NmMessageListModel::NmMessageListModel(NmDataManager &dataManager, + QObject *parent /* = 0 */) +: QStandardItemModel(parent), + mDataManager(dataManager), + mDividersActive(false), + mParentPtr(NULL), + mCurrentFolderType(NmFolderInbox), + mIgnoreFolderIds(false) { // Check for setting whether dividers are active // mDividersActive = ... // update also the test cases } + /*! - Destructor - */ + Class destructor. +*/ NmMessageListModel::~NmMessageListModel() { clear(); } + /*! Returns data specified by \a index. Only Qt::DisplayRole is supported in \a role. The refresh method must have been called before this method can return any real data. - */ - +*/ QVariant NmMessageListModel::data(const QModelIndex &index, int role) const { QVariant qVariant; - if (index.isValid() && Qt::DisplayRole == role) { - NmMessageListModelItem *item = static_cast(itemFromIndex(index)); - qVariant = QVariant::fromValue(item); + + if (index.isValid()){ + if (role == Qt::DisplayRole) { + NmMessageListModelItem *item = + static_cast(itemFromIndex(index)); + qVariant = QVariant::fromValue(item); + } + else if (role == NmFolderTypeRole) { + qVariant = QVariant(mCurrentFolderType); + } } + return qVariant; } + /*! This refreshes the data of the model. - */ + + \param mailboxId The ID of the mailbox. + \param folderId The ID of the folder. + \param messageEnvelopeList A list containing the message meta data. +*/ void NmMessageListModel::refresh( - const NmId mailboxId, - const NmId folderId, - const QList &messageEnvelopeList) + const NmId mailboxId, + const NmId folderId, + const QList &messageEnvelopeList) { - // Store current mailbox and folder id + // Store the current mailbox and folder IDs. mCurrentMailboxId = mailboxId; mCurrentFolderId = folderId; - // clear the model + + // Store the type of the currently displayed folder. + mCurrentFolderType = mDataManager.folderTypeById(mailboxId, folderId); + + // Clear the model. clear(); - // Add items + + // Add the items from the given list. NmMessageEnvelope* insertedMessage(NULL); int parentCount(0); int childCount(0); + for (int i(0); i < messageEnvelopeList.count(); i++) { NmMessageEnvelope* nextMessage = messageEnvelopeList[i]; - if (mDividersActive && !messagesBelongUnderSameDivider( - insertedMessage, nextMessage)) { + + if (mDividersActive && + !messagesBelongUnderSameDivider(insertedMessage, nextMessage)) { insertDividerIntoModel(nextMessage, parentCount); parentCount++; childCount = 0; } + insertMessageIntoModel(nextMessage, childCount, false); insertedMessage = nextMessage; childCount++; } - //NMLOG(QString("nmailuiengine: model row count = %1").arg(rowCount())); } + /*! insertDividerIntoModel. Function inserts divider into model. - */ +*/ void NmMessageListModel::insertDividerIntoModel( NmMessageEnvelope *messageForDivider, int parentRow) @@ -112,7 +138,7 @@ /*! Function inserts message into model. Message can be inserted either to root or to parent. If parent is zero, item is added into root. - */ +*/ void NmMessageListModel::insertMessageIntoModel( NmMessageEnvelope *messageEnvelope, int childRow, bool emitSignal) { @@ -133,7 +159,7 @@ /*! Function checks whether the messages can be drawn under same title divider Check is done depending of the current sorting criteria - */ +*/ bool NmMessageListModel::messagesBelongUnderSameDivider( const NmMessageEnvelope *message1, const NmMessageEnvelope *message2) const @@ -154,53 +180,77 @@ /*! - Function handles message events - */ -void NmMessageListModel::handleMessageEvent( - NmMessageEvent event, - const NmId &folderId, - const QList &messageIds) + Handles the message events. + + \param event The type of the message event. + \param folderId The folder containing the message. + \param messageIds A list of message IDs related to the event. +*/ +void NmMessageListModel::handleMessageEvent(NmMessageEvent event, + const NmId &folderId, + const QList &messageIds) { + NMLOG(QString("nmmessagelistmodel::handleMessageEvent()")); + NmId mailboxId = mCurrentMailboxId; + const int idCount = messageIds.count(); - if (folderId == 0) { - // const cast is used here because also the input parameter has to be changed - const_cast(folderId) = mDataManager.getStandardFolderId(mailboxId, NmFolderInbox); - NmUiStartParam *startParam = new NmUiStartParam(NmUiViewMessageList, mailboxId, folderId); - emit setNewParam(startParam); + // Folder ID does not concern us if this model instance is used for e.g. + // searching messages. + if (!mIgnoreFolderIds) { + if (folderId == 0) { + // Const cast is used here because also the input parameter has to + // be changed. + const_cast(folderId) = + mDataManager.getStandardFolderId(mailboxId, NmFolderInbox); + NmUiStartParam *startParam = + new NmUiStartParam(NmUiViewMessageList, mailboxId, folderId); + emit setNewParam(startParam); + } + + if (mCurrentFolderId == 0) { + // Folder ID was not known at time when the mailbox opened and we + // know that because of events the subscription is valid only for + // the current mailbox. + mCurrentFolderId = folderId; + } + + if (mCurrentFolderId != folderId) { + // The event does not concern the folder currently being displayed. + // Thus, ignore it. + return; + } } - if (mCurrentFolderId == 0) { - // Folder id was not known at time mailbox opened - // and we know subscription is valid only for current - // mailbox, because of events. - mCurrentFolderId = folderId; - } - // Handle events if they concern currently displayed folder - if (mCurrentFolderId == folderId) { - NMLOG(QString("nmailuiengine: handleMessageEvent")); - if (NmMessageChanged == event) { - for (int a(0); a < messageIds.count(); a++) { - updateMessageEnvelope(mailboxId, folderId,messageIds[a]); + + // Go through the given message IDs and do the appropriate operations + // according to the type of the event. + for (int i(0); i < idCount; ++i) { + switch (event) { + case NmMessageChanged: { + updateMessageEnvelope(mailboxId, folderId, messageIds[i]); + break; } - } - else if (NmMessageCreated == event) { - for (int a(0); a < messageIds.count(); a++) { - if(!itemFromModel(messageIds[a])) { - insertNewMessageIntoModel(mailboxId, folderId, messageIds[a]); + case NmMessageCreated: + case NmMessageFound: { + if (!itemFromModel(messageIds[i])) { + insertNewMessageIntoModel(mailboxId, folderId, messageIds[i]); } + + break; } - } else { - for (int a(0); a < messageIds.count(); a++) { - removeMessageFromModel(messageIds[a]); + case NmMessageDeleted: { + removeMessageFromModel(messageIds[i]); + break; } } } } + /*! Function inserts new message into correct position to model. A new title divider is created if it is needed. - */ +*/ void NmMessageListModel::insertNewMessageIntoModel( const NmId &mailboxId, const NmId &folderId, @@ -266,7 +316,7 @@ /*! Function check model index in which the new message should be inserted with the currently active sort mode. - */ +*/ int NmMessageListModel::getInsertionIndex( const NmMessageEnvelope &envelope) const { @@ -300,7 +350,7 @@ /*! Function finds preceding title divider index and sets the mParentPtr variable. - */ +*/ int NmMessageListModel::dividerInsertionIndex(int messageIndex) { bool found(false); @@ -322,7 +372,7 @@ /*! Create title divider item - */ +*/ NmMessageListModelItem *NmMessageListModel::createTitleDividerItem( NmMessageEnvelope *messageForDivider) { @@ -351,7 +401,7 @@ /*! Create message item - */ +*/ NmMessageListModelItem *NmMessageListModel::createMessageItem( NmMessageEnvelope *envelope) { @@ -365,7 +415,7 @@ /*! Returns divider state - */ +*/ bool NmMessageListModel::dividersActive() { return mDividersActive; @@ -373,7 +423,7 @@ /*! Set divider state - */ +*/ void NmMessageListModel::setDividers(bool active) { mDividersActive = active; @@ -381,7 +431,7 @@ /*! Change item property if differs - */ +*/ void NmMessageListModel::setEnvelopeProperties( NmEnvelopeProperties property, const QList &messageIds) @@ -391,17 +441,32 @@ } } + /*! - Returns the id of the current mailbox - */ + Returns the ID of the current mailbox. +*/ NmId NmMessageListModel::currentMailboxId() { return mCurrentMailboxId; } + +/*! + Sets whether the model should ignore the folder IDs or not. The folder IDs + should be ignored e.g. when the model is used for searching messages + (i.e. used by the search view). + + \param ignore If true, will ignore the folder IDs. +*/ +void NmMessageListModel::setIgnoreFolderIds(bool ignore) +{ + mIgnoreFolderIds = ignore; +} + + /*! Remove message from model if message exists in model - */ +*/ void NmMessageListModel::removeMessageFromModel(const NmId &msgId) { QList items = findItems("*", Qt::MatchWildcard | Qt::MatchRecursive); @@ -453,7 +518,7 @@ /*! Helper function to remove row - */ +*/ void NmMessageListModel::removeItem(int row, NmMessageListModelItem &item) { QStandardItem *parent = item.parent(); @@ -462,7 +527,7 @@ /*! Search item from model - */ +*/ NmMessageListModelItem *NmMessageListModel::itemFromModel(const NmId &messageId) { QList items = findItems("*", Qt::MatchWildcard | Qt::MatchRecursive); @@ -485,7 +550,7 @@ /*! Helper function for envelope comparison - */ +*/ bool NmMessageListModel::changed(const NmMessageEnvelope &first, const NmMessageEnvelope &second) { return first != second; @@ -493,7 +558,7 @@ /*! Updates envelope if something is changed - */ +*/ void NmMessageListModel::updateMessageEnvelope(const NmId &mailboxId, const NmId &folderId, const NmId &msgId) @@ -514,7 +579,7 @@ /*! Update envelope property - */ +*/ void NmMessageListModel::updateEnvelope(NmEnvelopeProperties property, const NmId &msgId) { NmMessageListModelItem *item = itemFromModel(msgId); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/src/nmmessagesearchlistmodel.cpp --- a/emailuis/nmailuiengine/src/nmmessagesearchlistmodel.cpp Fri May 14 15:41:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -* 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: -* -*/ - -#include "nmuiengineheaders.h" - -/*! - \class NmMessageSearchListModel - \brief A proxy model used to filter out messages from the message list model - that are not amongst the search results. -*/ - -/*! - Class constructor. -*/ -NmMessageSearchListModel::NmMessageSearchListModel(QObject *parent) -: QSortFilterProxyModel(parent) -{ - // No implementation required. -} - - -/*! - Class destructor. -*/ -NmMessageSearchListModel::~NmMessageSearchListModel() -{ - clearSearchResults(); -} - - -/*! - Clears search results and removes the accepted source model items from this - proxy model. -*/ -void NmMessageSearchListModel::clearSearchResults() -{ - mSearchResults.clear(); - invalidateFilter(); -} - - -/*! - Returns the number of search results i.e. IDs in the container. - - \return The number of search results. -*/ -int NmMessageSearchListModel::searchResultCount() const -{ - return mSearchResults.count(); -} - - -/*! - From QSortFilterProxyModel. - Returns the data from the source model according to the given proxy index. - - \param index The index of this proxy model. - \param role The item role. - - \return The item data wrapped in a QVariant. -*/ -QVariant NmMessageSearchListModel::data(const QModelIndex &index, - int role /* = Qt::DisplayRole */) const -{ - QVariant retVal; - QAbstractItemModel *model = sourceModel(); - - if (model) { - // Return the data from the source model by mapping the given index - // in respect to the source model. - QModelIndex sourceIndex = mapToSource(index); - retVal = model->data(sourceIndex, role); - } - else { - // Since no source model set, use the base class method implementation. - retVal = QSortFilterProxyModel::data(index, role); - } - - return retVal; -} - - -/*! - From QSortFilterProxyModel. - Filters the items of the source model depending on the current search results. - - \param source_row A source model row index. - \param source_parent The parent model index of the row. - - \return True if the row should be accepted to the search list model, false - otherwise. -*/ -bool NmMessageSearchListModel::filterAcceptsRow(int source_row, - const QModelIndex &source_parent) const -{ - bool accept(false); - - // Get the source model. - NmMessageListModel *model = qobject_cast(sourceModel()); - - if (model) { - // Extract the model item corresponding the given row and index. - QModelIndex listIndex = model->index(source_row, 0, source_parent); - QVariant qVariant = model->data(listIndex); - NmMessageListModelItem *item = qVariant.value(); - - if (item) { - // Get the message ID from the item and compare it to the current - // search results. - const NmId itemId = item->envelope().messageId(); - - if (mSearchResults.contains(itemId)) { - // The message ID matches the search result => do accept the row. - accept = true; - } - } - } - - return accept; -} - - -/*! - Adds the given message ID to the search results. - - \param messageId The ID to add. - - \return True if the given ID was added, false otherwise. -*/ -bool NmMessageSearchListModel::addSearchResult(const NmId &messageId) -{ - bool resultAdded(false); - - // Make sure not to add the same ID twice. - if (!mSearchResults.contains(messageId)) { - // Add the given ID to the results. - mSearchResults.append(messageId); - resultAdded = true; - - // Invalidate the filter in order to update the model. This forces - // filterAcceptsRow() to be ran again for each row in the source model. - invalidateFilter(); - } - - return resultAdded; -} - - -/*! - Refreshes the content by forcing the model to re-process the source model - items using the current filter (search results). -*/ -void NmMessageSearchListModel::refreshContent() -{ - invalidateFilter(); -} - - -// End of file. diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/src/nmoperation.cpp --- a/emailuis/nmailuiengine/src/nmoperation.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/src/nmoperation.cpp Thu May 27 12:43:55 2010 +0300 @@ -54,13 +54,17 @@ */ void NmOperation::addPreliminaryOperation(NmOperation *operation) { - connect(operation, SIGNAL(operationCompleted()), this, - SLOT(handlePreliminaryOperationFinished())); - - connect(operation, SIGNAL(operationCancelled()), this, - SLOT(handlePreliminaryOperationFinished())); - - mPreliminaryOperations.append(operation); + // if the preliminary operation is already completed + // the input parameter can be null + if (operation && operation->isRunning()) { + connect(operation, SIGNAL(operationCompleted()), this, + SLOT(handlePreliminaryOperationFinished())); + + connect(operation, SIGNAL(operationCancelled()), this, + SLOT(handlePreliminaryOperationFinished())); + + mPreliminaryOperations.append(operation); + } } /*! diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiengine/src/nmuiengine.cpp --- a/emailuis/nmailuiengine/src/nmuiengine.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiengine/src/nmuiengine.cpp Thu May 27 12:43:55 2010 +0300 @@ -182,59 +182,85 @@ } } + /*! - Returns a message list model for a folder identified by \a mailboxId and \a folderId. - The model is updated dynamically. The ownership of the model object is not moved to the caller. + Returns a message list model for a folder identified by \a mailboxId and + \a folderId. The model is updated dynamically. The ownership of the model + object is not moved to the caller. */ -NmMessageListModel &NmUiEngine::messageListModel(const NmId &mailboxId, const NmId &folderId) +NmMessageListModel &NmUiEngine::messageListModel(const NmId &mailboxId, + const NmId &folderId) { - if (!mMessageListModel){ + if (!mMessageListModel) { mMessageListModel = new NmMessageListModel(*mDataManager); } - else{ + else { mMessageListModel->clear(); } - QObject *plugin = - mPluginFactory->pluginInstance(mailboxId); + + QObject *plugin = mPluginFactory->pluginInstance(mailboxId); + if (plugin) { QObject::connect(plugin, SIGNAL(messageEvent(NmMessageEvent, const NmId &, const QList &, const NmId&)), - mMessageListModel, + mMessageListModel, SLOT(handleMessageEvent(NmMessageEvent, const NmId &, const QList &)), Qt::UniqueConnection ); QObject::connect( plugin, SIGNAL(syncStateEvent(NmSyncState, const NmOperationCompletionEvent &)), this, SLOT(handleSyncStateEvent(NmSyncState, const NmOperationCompletionEvent &)), - Qt::UniqueConnection); - // no need for mailbox event subscription here, already done in constructor + Qt::UniqueConnection); + + // No need for mailbox event subscription here, already done in + // constructor. } + QList messageEnvelopeList; mDataManager->listMessages(mailboxId, folderId, messageEnvelopeList); mMessageListModel->refresh(mailboxId, folderId, messageEnvelopeList); + while (!messageEnvelopeList.isEmpty()) { delete messageEnvelopeList.takeFirst(); } + return *mMessageListModel; } /*! - Returns a reference of the message search list model. If the model does not - exist yet, one is constructed. + Returns a message list model used in the search view. - \param sourceModel The source model for the search list model. + \param mailboxId The ID of the mailbox to search messages from. - \return The message search list model. + \return A message list model. */ -NmMessageSearchListModel &NmUiEngine::messageSearchListModel( - QAbstractItemModel *sourceModel) +NmMessageListModel &NmUiEngine::messageListModelForSearch(const NmId &mailboxId) { + Q_UNUSED(mailboxId); + if (!mMessageSearchListModel) { - mMessageSearchListModel = new NmMessageSearchListModel(); + mMessageSearchListModel = new NmMessageListModel(*mDataManager); + mMessageSearchListModel->setIgnoreFolderIds(true); + } + else { + mMessageSearchListModel->clear(); } - mMessageSearchListModel->setSourceModel(sourceModel); + QObject *plugin = mPluginFactory->pluginInstance(mailboxId); + + if (plugin) { + QObject::connect(plugin, + SIGNAL(messageEvent(NmMessageEvent, const NmId &, const QList &, const NmId&)), + mMessageSearchListModel, + SLOT(handleMessageEvent(NmMessageEvent, const NmId &, const QList &)), + Qt::UniqueConnection); + } + + // Refresh to set the mailbox ID. + QList messageEnvelopeList; + mMessageSearchListModel->refresh(mailboxId, 0, messageEnvelopeList); + return *mMessageSearchListModel; } @@ -310,6 +336,25 @@ /*! */ +QPointer NmUiEngine::fetchMessageParts( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const QList &messagePartIds) +{ + NMLOG("NmUiEngine::fetchMessageParts() <---"); + QPointer value(NULL); + NmDataPluginInterface *plugin = + mPluginFactory->interfaceInstance(mailboxId); + if (plugin) { + value = plugin->fetchMessageParts(mailboxId, folderId, messageId, messagePartIds); + } + return value; +} + +/*! + +*/ XQSharableFile NmUiEngine::messagePartFile( const NmId &mailboxId, const NmId &folderId, @@ -707,13 +752,17 @@ if (pluginInstance) { // Make sure the required signals are connected. - connect(pluginInstance, SIGNAL(matchFound(const NmId &)), - this, SIGNAL(matchFound(const NmId &)), Qt::UniqueConnection); - connect(pluginInstance, SIGNAL(matchFound(const NmId &)), - mMessageSearchListModel, SLOT(addSearchResult(const NmId &)), + connect(pluginInstance, SIGNAL(matchFound(const NmId &, const NmId &)), + this, SIGNAL(matchFound(const NmId &, const NmId &)), + Qt::UniqueConnection); + + connect(pluginInstance, SIGNAL(matchFound(const NmId &, const NmId &)), + this, SLOT(handleMatchFound(const NmId &, const NmId &)), + Qt::UniqueConnection); + + connect(pluginInstance, SIGNAL(searchComplete()), + this, SIGNAL(searchComplete()), Qt::UniqueConnection); - connect(pluginInstance, SIGNAL(searchComplete()), - this, SIGNAL(searchComplete()), Qt::UniqueConnection); } int retVal(NmNoError); @@ -754,34 +803,31 @@ } /*! - Cancels the search operation if one is ongoing. - - \param mailboxId The ID of the mailbox containing the folder - - \param folderId The ID of the folder - \return Folder type */ NmFolderType NmUiEngine::folderTypeById(NmId mailboxId, NmId folderId) -{ - NmFolderType folderType(NmFolderOther); - if (standardFolderId(mailboxId,NmFolderInbox)==folderId){ - folderType=NmFolderInbox; - } - else if (standardFolderId(mailboxId,NmFolderOutbox)==folderId){ - folderType=NmFolderOutbox; +{ + NmFolderType ret(NmFolderInbox); + if (mDataManager){ + ret = mDataManager->folderTypeById(mailboxId,folderId); } - else if (standardFolderId(mailboxId,NmFolderDrafts)==folderId){ - folderType=NmFolderDrafts; + return ret; +} + +/*! + Indicates application state information to protocol plugin + \param mailboxId Id of active mailbox, 0 if application is closed. + \param folderId Id of active folder, 0 if application is closed. +*/ +void NmUiEngine::updateActiveFolder(const NmId &mailboxId, const NmId &folderId) +{ + NmApplicationStateInterface *interface = + mPluginFactory->applicationStateInterfaceInstance(mailboxId); + if (interface) { + interface->updateActiveFolder(mailboxId, folderId); } - else if (standardFolderId(mailboxId,NmFolderSent)==folderId){ - folderType=NmFolderSent; - } - else if (standardFolderId(mailboxId,NmFolderDeleted)==folderId){ - folderType=NmFolderDeleted; - } - return folderType; } + /*! Handle completed send operation. */ @@ -849,6 +895,30 @@ } } + +/*! + Adds the found message into the search model. + + \param messageId The ID of the found message. + \param folderId The ID of the folder where the message is located. +*/ +void NmUiEngine::handleMatchFound(const NmId &messageId, const NmId &folderId) +{ + if (!mMessageSearchListModel) { + // No search list model! + return; + } + + // Add the found message into the search model. + QList messageIdList; + messageIdList.append(messageId); + + mMessageSearchListModel->handleMessageEvent(NmMessageFound, + folderId, + messageIdList); +} + + /*! receives events when going online, and offline. */ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmailuiwidgets/inc/nmeditortextedit.h --- a/emailuis/nmailuiwidgets/inc/nmeditortextedit.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmailuiwidgets/inc/nmeditortextedit.h Thu May 27 12:43:55 2010 +0300 @@ -61,6 +61,7 @@ int mHeaderHeight; QPointF mBgScrollPosition; bool mFirstTime; + bool mFirstTimeToScrollPosUpdate; QPair mCustomTextColor;//!scrollContentsTo(QPointF(0,0)); + } mBgScrollPosition = newPosition; } diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/inc/nmframeworkadapter.h --- a/emailuis/nmframeworkadapter/inc/nmframeworkadapter.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/inc/nmframeworkadapter.h Thu May 27 12:43:55 2010 +0300 @@ -20,6 +20,7 @@ #include #include +#include #include #include @@ -33,6 +34,7 @@ class NmOperation; class NmMessageCreationOperation; class CFSMailClient; +class CFSMailFolder; class CFSMailMessage; class CFSMailMessagePart; class NmStoreEnvelopesOperation; @@ -45,10 +47,11 @@ class NmFrameworkAdapter : public QObject, public NmDataPluginInterface, + public NmApplicationStateInterface, public MFSMailEventObserver { Q_OBJECT - Q_INTERFACES(NmDataPluginInterface) + Q_INTERFACES(NmDataPluginInterface NmApplicationStateInterface) public: @@ -78,7 +81,13 @@ const NmId& mailboxId, const NmId& folderId, QList &messageMetaDataList); - + + int listMessages( + const NmId& mailboxId, + const NmId& folderId, + QList &messageMetaDataList, + const int maxAmountOfEnvelopes); + int listMessages( const NmId& mailboxId, const NmId& folderId, @@ -95,6 +104,12 @@ const NmId &folderId, const NmId &messageId, const NmId &messagePartId); + + QPointer fetchMessageParts( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const QList &messagePartIds); XQSharableFile messagePartFile( const NmId &mailboxId, @@ -177,19 +192,14 @@ const NmId &mailboxId, const NmId &folderId, NmFolder *&folder ); - - int listMessages( - const NmId& mailboxId, - const NmId& folderId, - QList &messageMetaDataList, - const int maxAmountOfEnvelopes); int search(const NmId &mailboxId, const QStringList &searchStrings); int cancelSearch(const NmId &mailboxId); - + void updateActiveFolder(const NmId &mailboxId, const NmId &folderId); + signals: void mailboxEvent(NmMailboxEvent event, const QList &mailboxIds); @@ -206,7 +216,7 @@ void connectionEvent(NmConnectState state, const NmId mailboxId, int errorCode); - void matchFound(const NmId &messageId); + void matchFound(const NmId &messageId, const NmId &folderId); void searchComplete(); @@ -224,7 +234,11 @@ const NmId &folderId, const NmId &messageId, NmMessagePart &messagePart); - + + void getMessagesFromFolderL(CFSMailFolder *folder, + QList &messageEnvelopeList, + const int maxEnvelopeCount); + void listMessagesL( const NmId &mailboxId, const NmId &folderId, @@ -273,7 +287,7 @@ void handleSyncstateEvent(TAny* param1, TFSMailMsgId mailbox); - void getFolderByIdL( + void getFolderByIdL( const NmId& mailboxId, const NmId& folderId, NmFolder*& unreadCount ); diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/inc/nmframeworkadapterheaders.h --- a/emailuis/nmframeworkadapter/inc/nmframeworkadapterheaders.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/inc/nmframeworkadapterheaders.h Thu May 27 12:43:55 2010 +0300 @@ -39,6 +39,8 @@ #include #include #include +#include +#include // nmailbase #include @@ -60,6 +62,7 @@ #include "nmfwareplymessagecreationoperation.h" #include "nmfwamessagefetchingoperation.h" #include "nmfwamessagepartfetchingoperation.h" +#include "nmfwamessagepartsfetchingoperation.h" #include "nmfwamessagesendingoperation.h" #include "nmfwastoreenvelopesoperation.h" #include "nmfwastoremessageoperation.h" diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/inc/nmfwaaddattachmentsoperation.h --- a/emailuis/nmframeworkadapter/inc/nmfwaaddattachmentsoperation.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/inc/nmfwaaddattachmentsoperation.h Thu May 27 12:43:55 2010 +0300 @@ -42,6 +42,7 @@ protected: void doRunAsyncOperation(); + void doCompleteOperation(); void doCancelOperation(); private: diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/inc/nmfwamessagefetchingoperation.h --- a/emailuis/nmframeworkadapter/inc/nmfwamessagefetchingoperation.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/inc/nmfwamessagefetchingoperation.h Thu May 27 12:43:55 2010 +0300 @@ -39,6 +39,7 @@ protected: void doRunAsyncOperation(); + void doCompleteOperation(); void doCancelOperation(); private: diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/inc/nmfwamessagepartfetchingoperation.h --- a/emailuis/nmframeworkadapter/inc/nmfwamessagepartfetchingoperation.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/inc/nmfwamessagepartfetchingoperation.h Thu May 27 12:43:55 2010 +0300 @@ -40,6 +40,7 @@ protected: void doRunAsyncOperation(); + void doCompleteOperation(); void doCancelOperation(); private: diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/inc/nmfwamessagepartsfetchingoperation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/nmframeworkadapter/inc/nmfwamessagepartsfetchingoperation.h Thu May 27 12:43:55 2010 +0300 @@ -0,0 +1,63 @@ +/* + * 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: + * + */ + +#ifndef NMFWAMESSAGEPARTSFETCHINGOPERATION_H_ +#define NMFWAMESSAGEPARTSFETCHINGOPERATION_H_ + +#include +#include + +class NmMessage; +class CFSMailClient; + +class NmFwaMessagePartsFetchingOperation : public NmOperation, public MFSMailRequestObserver +{ + Q_OBJECT +public: + NmFwaMessagePartsFetchingOperation( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const QList &messagePartIds, + CFSMailClient &mailClient); + + // from MFSMailRequestObserver + void RequestResponseL(TFSProgress aEvent, TInt aRequestId); + +protected: + void doRunAsyncOperation(); + void doCompleteOperation(); + void doCancelOperation(); + +private: + ~NmFwaMessagePartsFetchingOperation(); + void doRunAsyncOperationL(); + +private: + NmId mMailboxId; + NmId mFolderId; + NmId mMessageId; + RArray mMessagePartIds; + + CFSMailClient &mMailClient; + + int mLastProgressValue; + + TInt mRequestId; +}; + +#endif /* NMFWAMESSAGEPARTSFETCHINGOPERATION_H_ */ diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/inc/nmmailboxsearchobserver.h --- a/emailuis/nmframeworkadapter/inc/nmmailboxsearchobserver.h Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/inc/nmmailboxsearchobserver.h Thu May 27 12:43:55 2010 +0300 @@ -47,7 +47,7 @@ signals: - void matchFound(const NmId &messageId); + void matchFound(const NmId &messageId, const NmId &folderId); void searchComplete(); }; diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/nmframeworkadapter.pro --- a/emailuis/nmframeworkadapter/nmframeworkadapter.pro Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/nmframeworkadapter.pro Thu May 27 12:43:55 2010 +0300 @@ -13,7 +13,7 @@ # # Description: # -# Version : %version: 26 % +# Version : %version: e003sa37#27 % TEMPLATE = lib TARGET = nmframeworkadapter @@ -38,7 +38,8 @@ inc/nmfwastoremessageoperation.h \ inc/nmfwacheckoutboxoperation.h \ inc/nmfwamessagepartfetchingoperation.h \ - inc/nmmailboxsearchobserver.h + inc/nmmailboxsearchobserver.h \ + inc/nmfwamessagepartsfetchingoperation.h SOURCES += src/nmframeworkadapter.cpp \ src/nmfwamessagefetchingoperation.cpp \ @@ -52,7 +53,8 @@ src/nmfwastoremessageoperation.cpp \ src/nmfwacheckoutboxoperation.cpp \ src/nmfwamessagepartfetchingoperation.cpp \ - src/nmmailboxsearchobserver.cpp + src/nmmailboxsearchobserver.cpp \ + src/nmfwamessagepartsfetchingoperation.cpp RESOURCES += diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/src/nmframeworkadapter.cpp --- a/emailuis/nmframeworkadapter/src/nmframeworkadapter.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/src/nmframeworkadapter.cpp Thu May 27 12:43:55 2010 +0300 @@ -276,6 +276,89 @@ } } + +/*! + Fetches all the messages from the given folder and appends their meta data + into the given list. + + \param folder The folder instance. + \param messageEnvelopeList The list where the data is stored to. + \param maxEnvelopeCount The maximum number of messages to get. +*/ +void NmFrameworkAdapter::getMessagesFromFolderL( + CFSMailFolder *folder, + QList &messageEnvelopeList, + const int maxEnvelopeCount) +{ + if (!folder || maxEnvelopeCount < 1) { + return; + } + + int blockSize = NmListMessagesBlock; + int maxItemCount = NmMaxItemsInMessageList; + + if (maxEnvelopeCount < NmMaxItemsInMessageList) { + maxItemCount = maxEnvelopeCount; + + if(maxEnvelopeCount < NmListMessagesBlock) { + blockSize = maxEnvelopeCount; + } + } + + // First prepare all the parameters and select message details to be listed. + TFSMailDetails details(EFSMsgDataEnvelope); + + // Set the sorting criteria. + TFSMailSortCriteria criteria; + criteria.iField = EFSMailSortByDate; + criteria.iOrder = EFSMailDescending; + RArray sorting; + CleanupClosePushL(sorting); + sorting.Append(criteria); + + // Get the message list from the backend. + MFSMailIterator* iterator(NULL); + iterator = folder->ListMessagesL(details, sorting); + + if (iterator) { + CleanupStack::PushL(iterator); + RPointerArray messages; + CleanupResetAndDestroy::PushL(messages); + + // The message list is fetched in blocks to prevent OOM in protocol + // plugin side. + bool moreMessagesToFollow(false); + moreMessagesToFollow = iterator->NextL(TFSMailMsgId(), blockSize, messages); + + for (int i = blockSize; + i < maxItemCount && moreMessagesToFollow; + i += blockSize) { + moreMessagesToFollow = + iterator->NextL(messages[i-1]->GetMessageId(), blockSize, messages); + } + + // Add all the found emails into the result list. + const TInt messageCount(messages.Count()); + + for (TInt i = 0; i < messageCount; ++i) { + NmMessageEnvelope *newEnvelope(NULL); + newEnvelope = messages[i]->GetNmMessageEnvelope(); + + if (newEnvelope) { + messageEnvelopeList.append(newEnvelope); + } + } + + CleanupStack::PopAndDestroy(&messages); + CleanupStack::Pop(iterator); + delete iterator; + iterator = NULL; + } + + CleanupStack::PopAndDestroy(); // sorting +} + + /*! Returns list of envelopes from the backend for specific mailbox and folder. @@ -295,107 +378,67 @@ return err; } + +/*! + Fetches the meta data for each message in the given mailbox and given + folder. + + \param mailboxId The ID of the mailbox of which messages to list. + \param folderId The ID of the folder of which messages to list. + \param messageEnvelopeList The list where the message data is stored to. + Note that the ownership is transferred! + \param maxAmountOfEnvelopes The maximum number of messages to list. + + \return If success, KErrNone, an error code otherwise. +*/ int NmFrameworkAdapter::listMessages( const NmId& mailboxId, const NmId& folderId, QList &messageEnvelopeList, const int maxAmountOfEnvelopes) - { +{ TInt err = KErrNone; TRAP(err, listMessagesL(mailboxId,folderId, messageEnvelopeList,maxAmountOfEnvelopes) ); return err; - } +} + /*! - Leaving version of list messages - */ + Fetches the meta data for each message in the given mailbox and given + folder. Note that this private method can leave. +*/ void NmFrameworkAdapter::listMessagesL( const NmId &mailboxId, const NmId &folderId, QList &messageEnvelopeList, const int maxAmountOfEnvelopes) { - CFSMailBox * currentMailbox(NULL); - CFSMailFolder* folder(NULL); - - //If we are requesting 0 or less mails so we can return - if( maxAmountOfEnvelopes <= 0) - { + // If we are requesting 0 or less mails, we can just return. + if (maxAmountOfEnvelopes <= 0) { return; - } + } - int blockSize = NmListMessagesBlock; - int maxLimit = NmMaxItemsInMessageList; - if( maxAmountOfEnvelopes < NmMaxItemsInMessageList ) - { - maxLimit = maxAmountOfEnvelopes; - if(maxAmountOfEnvelopes < NmListMessagesBlock) - { - blockSize = maxAmountOfEnvelopes; - } - } - + CFSMailBox *mailbox(NULL); + mailbox = mFSfw->GetMailBoxByUidL(mailboxId); - currentMailbox = mFSfw->GetMailBoxByUidL(mailboxId); - if (!currentMailbox) { + if (!mailbox) { User::Leave(KErrNotFound); } - CleanupStack::PushL(currentMailbox); - folder = mFSfw->GetFolderByUidL(currentMailbox->GetId(), TFSMailMsgId(folderId)); + + CleanupStack::PushL(mailbox); + + CFSMailFolder* folder(NULL); + folder = mFSfw->GetFolderByUidL(mailbox->GetId(), TFSMailMsgId(folderId)); if (folder) { CleanupStack::PushL(folder); - // First prepare all the parameters - // select message details to be listed - TFSMailDetails details(EFSMsgDataEnvelope); - - // set sorting criteria - TFSMailSortCriteria criteria; - criteria.iField = EFSMailSortByDate; - criteria.iOrder = EFSMailDescending; - RArray sorting; - CleanupClosePushL(sorting); - sorting.Append(criteria); - - TFSMailMsgId currentMessageId; // first call contains NULL id as begin id - // get messages list from the backend - MFSMailIterator* iterator(NULL); - - iterator = folder->ListMessagesL(details, sorting); - if (iterator) { - CleanupStack::PushL(iterator); - RPointerArray messages; - CleanupResetAndDestroy::PushL(messages); + getMessagesFromFolderL(folder, messageEnvelopeList, maxAmountOfEnvelopes); + CleanupStack::PopAndDestroy(folder); + } - //Message list is fetched in blocks to prevent OOM in protocol plugin side - bool moreMessagesToFollow(false); - moreMessagesToFollow = iterator->NextL( - TFSMailMsgId(), blockSize, messages); - for ( int i = blockSize; - i < maxLimit && moreMessagesToFollow ; - i += blockSize ) { - moreMessagesToFollow = iterator->NextL( - messages[i-1]->GetMessageId(), blockSize, messages); - } + CleanupStack::PopAndDestroy(mailbox); +} - //Add all found emails to the result list - for(TInt i=0; iGetNmMessageEnvelope(); - if (newEnvelope) { - messageEnvelopeList.append(newEnvelope); - } - } - CleanupStack::PopAndDestroy( &messages ); - CleanupStack::Pop(iterator); - delete iterator; - iterator = NULL; - } - CleanupStack::PopAndDestroy(); // sorting - CleanupStack::PopAndDestroy(folder); - } - CleanupStack::PopAndDestroy(currentMailbox); -} /*! Returns list of messages from the backend for specific mailbox and folder. @@ -417,6 +460,7 @@ return err; } + /*! Leaving version of list messages with NmMessageList input */ @@ -437,6 +481,7 @@ int blockSize = NmListMessagesBlock; int maxLimit = NmMaxItemsInMessageList; + if( maxAmountOfEnvelopes < NmMaxItemsInMessageList ) { maxLimit = maxAmountOfEnvelopes; @@ -446,7 +491,6 @@ } } - currentMailbox = mFSfw->GetMailBoxByUidL(mailboxId); if (!currentMailbox) { User::Leave(KErrNotFound); @@ -516,6 +560,7 @@ CleanupStack::PopAndDestroy(currentMailbox); } + /*! Starts an asynchronous search for messages with the given search strings. This is part of the public interface. @@ -536,8 +581,8 @@ // Set connections for forwarding the signals emitted by the search // observer. - connect(mSearchObserver, SIGNAL(matchFound(const NmId &)), - this, SIGNAL(matchFound(const NmId &)), Qt::UniqueConnection); + connect(mSearchObserver, SIGNAL(matchFound(const NmId &, const NmId &)), + this, SIGNAL(matchFound(const NmId &, const NmId &)), Qt::UniqueConnection); connect(mSearchObserver, SIGNAL(searchComplete()), this, SIGNAL(searchComplete()), Qt::UniqueConnection); @@ -550,6 +595,7 @@ Cancels the search if one is ongoing. \param mailboxId The ID of the mailbox running the search. + \return A possible error code. */ @@ -566,6 +612,17 @@ return err; } +/*! + Indicates application state information to protocol plugins + \param mailboxId Id of active mailbox, 0 if application is closed. + \param folderId Id of active folder, 0 if application is closed. +*/ +void NmFrameworkAdapter::updateActiveFolder(const NmId &mailboxId, const NmId &folderId) +{ + // TODO ExtensionL from CFSMailClient & state update + Q_UNUSED(mailboxId); + Q_UNUSED(folderId); +} /*! Starts an asynchronous search for messages with the given search strings. @@ -654,6 +711,27 @@ } /*! + Starts a message parts fetching operation. + + \param mailboxId Id of the mailbox containing the folder. + \param folderId Id of the folder containing the message. + \param messageId Id of message containing the message parts + \param messagePartIds ids of message parts + + \return An NmOperation object for the operation, ownership is transferred to caller + */ +QPointer NmFrameworkAdapter::fetchMessageParts( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const QList &messagePartIds) +{ + QPointer oper = new NmFwaMessagePartsFetchingOperation( + mailboxId, folderId, messageId, messagePartIds, *mFSfw); + return oper; +} + +/*! Returns sharable file handle to message part content \param mailboxId Id of the mailbox containing the folder. diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/src/nmfwaaddattachmentsoperation.cpp --- a/emailuis/nmframeworkadapter/src/nmfwaaddattachmentsoperation.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/src/nmfwaaddattachmentsoperation.cpp Thu May 27 12:43:55 2010 +0300 @@ -192,12 +192,20 @@ } /*! + * Complete the operation + */ +void NmFwaAddAttachmentsOperation::doCompleteOperation() +{ + mRequestId = NmNotFoundError; +} + +/*! Cancels the async operation. \sa NmOperation */ void NmFwaAddAttachmentsOperation::doCancelOperation() { - if (mRequestId != KErrNotFound) { + if (mRequestId >= 0) { TRAP_IGNORE(mMailClient.CancelL(mRequestId)); + mRequestId = NmNotFoundError; } - mRequestId = NmCancelError; } diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/src/nmfwamessagefetchingoperation.cpp --- a/emailuis/nmframeworkadapter/src/nmfwamessagefetchingoperation.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/src/nmfwamessagefetchingoperation.cpp Thu May 27 12:43:55 2010 +0300 @@ -62,9 +62,23 @@ } } +/*! + * Complete the operation + */ +void NmFwaMessageFetchingOperation::doCompleteOperation() +{ + mRequestId = NmNotFoundError; +} + +/*! + Cancels the async operation. \sa NmOperation + */ void NmFwaMessageFetchingOperation::doCancelOperation() { - TRAP_IGNORE(mMailClient.CancelL(mRequestId)); + if (mRequestId >= 0) { + TRAP_IGNORE(mMailClient.CancelL(mRequestId)); + mRequestId = NmNotFoundError; + } } /*! diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/src/nmfwamessagepartfetchingoperation.cpp --- a/emailuis/nmframeworkadapter/src/nmfwamessagepartfetchingoperation.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/src/nmfwamessagepartfetchingoperation.cpp Thu May 27 12:43:55 2010 +0300 @@ -119,9 +119,20 @@ } /*! + * Complete the operation + */ +void NmFwaMessagePartFetchingOperation::doCompleteOperation() +{ + mRequestId = NmNotFoundError; +} +/*! + Cancels the async operation. \sa NmOperation */ void NmFwaMessagePartFetchingOperation::doCancelOperation() { - TRAP_IGNORE(mMailClient.CancelL(mRequestId)); + if (mRequestId >= 0) { + TRAP_IGNORE(mMailClient.CancelL(mRequestId)); + mRequestId = NmNotFoundError; + } } diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/src/nmfwamessagepartsfetchingoperation.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/nmframeworkadapter/src/nmfwamessagepartsfetchingoperation.cpp Thu May 27 12:43:55 2010 +0300 @@ -0,0 +1,148 @@ +/* + * 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: + * + */ + +#include "nmframeworkadapterheaders.h" + +/*! + + */ +NmFwaMessagePartsFetchingOperation::NmFwaMessagePartsFetchingOperation( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const QList &messagePartIds, + CFSMailClient &mailClient) + : mMailboxId(mailboxId), + mFolderId(folderId), + mMessageId(messageId), + mMailClient(mailClient), + mLastProgressValue(0), + mRequestId(0) + +{ + // Take own copy of the message part id list. + mMessagePartIds.Reset(); + for (int i=0; i 0) { + // calculate progress per cents + qreal counterValue = aEvent.iCounter; + qreal maxCount = aEvent.iMaxCount; + progress = (counterValue / maxCount)*100; + } + if (progress > mLastProgressValue) { + // send only increasing values to prevent downward changing percentage + mLastProgressValue = progress; + updateOperationProgress(mLastProgressValue); + } + } + } +} + +/*! + + */ +void NmFwaMessagePartsFetchingOperation::doRunAsyncOperation() +{ + TRAPD(err, doRunAsyncOperationL()); + if (err != KErrNone) { + completeOperation(NmGeneralError); + } +} + +/*! + Leaving version from doRunAsyncOperation + */ +void NmFwaMessagePartsFetchingOperation::doRunAsyncOperationL() +{ + if (mMessagePartIds.Count() > 0) { + + const TFSMailMsgId mailboxId(mMailboxId.pluginId32(), mMailboxId.id32()); + const TFSMailMsgId folderId(mFolderId.pluginId32(), mFolderId.id32()); + const TFSMailMsgId messageId(mMessageId.pluginId32(), mMessageId.id32()); + + CFSMailMessage *message(NULL); + message = mMailClient.GetMessageByUidL(mailboxId, folderId, messageId, EFSMsgDataEnvelope); + CleanupStack::PushL(message); + + if (message) { + CFSMailMessagePart* messagePart = message->ChildPartL( mMessagePartIds[0] ); + CleanupStack::PushL(messagePart); + if (messagePart) { + mRequestId = messagePart->FetchMessagesPartsL(mMessagePartIds,*this,0); + } + else { + completeOperation(NmNotFoundError); + } + CleanupStack::PopAndDestroy(messagePart); + } + else { + completeOperation(NmNotFoundError); + } + CleanupStack::PopAndDestroy(message); + } + else { + completeOperation(NmNotFoundError); + } +} + +/*! + * Complete the operation + */ +void NmFwaMessagePartsFetchingOperation::doCompleteOperation() +{ + mRequestId = NmNotFoundError; +} + +/*! + Cancels the async operation. \sa NmOperation + */ +void NmFwaMessagePartsFetchingOperation::doCancelOperation() +{ + if (mRequestId >= 0) { + TRAP_IGNORE(mMailClient.CancelL(mRequestId)); + mRequestId = NmNotFoundError; + } +} diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmframeworkadapter/src/nmmailboxsearchobserver.cpp --- a/emailuis/nmframeworkadapter/src/nmmailboxsearchobserver.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmframeworkadapter/src/nmmailboxsearchobserver.cpp Thu May 27 12:43:55 2010 +0300 @@ -56,7 +56,8 @@ NmMessage *message = aMatchMessage->GetNmMessage(); if (message) { - emit matchFound(message->envelope().messageId()); + NmMessageEnvelope messageEnvelope = message->envelope(); + emit matchFound(messageEnvelope.messageId(), messageEnvelope.folderId()); delete message; } } diff -r 2dc6caa42ec3 -r 9ba4404ef423 emailuis/nmsettingui/src/nmmailboxsettingview.cpp --- a/emailuis/nmsettingui/src/nmmailboxsettingview.cpp Fri May 14 15:41:10 2010 +0300 +++ b/emailuis/nmsettingui/src/nmmailboxsettingview.cpp Thu May 27 12:43:55 2010 +0300 @@ -74,6 +74,9 @@ } if (mForm) { + // Fix for dataform item recycling. + mForm->setItemRecycling(false); + // Set the form for the view. setWidget(mForm); diff -r 2dc6caa42ec3 -r 9ba4404ef423 inc/emailshutdownconst.h --- a/inc/emailshutdownconst.h Fri May 14 15:41:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -/* -* Copyright (c) 2009 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: -* Constant definitions for Email shutdown -* -*/ - -#include "../emailservices/emailservermonitor/inc/emailshutdownconst.h" diff -r 2dc6caa42ec3 -r 9ba4404ef423 inc/emailshutdownconst.hrh --- a/inc/emailshutdownconst.hrh Fri May 14 15:41:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -/* -* Copyright (c) 2009 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: -* Constant definitions for Cmail shutdown -* -*/ - -#include "../emailservices/emailservermonitor/inc/emailshutdownconst.hrh" diff -r 2dc6caa42ec3 -r 9ba4404ef423 inc/nmapplicationstateinterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/nmapplicationstateinterface.h Thu May 27 12:43:55 2010 +0300 @@ -0,0 +1,18 @@ +/* +* 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: +* +*/ + +#include "../emailuis/nmailuiengine/inc/nmapplicationstateinterface.h" diff -r 2dc6caa42ec3 -r 9ba4404ef423 inc/nmmessagesearchlistmodel.h --- a/inc/nmmessagesearchlistmodel.h Fri May 14 15:41:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -/* -* 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: -* -*/ - -#include "../emailuis/nmailuiengine/inc/nmmessagesearchlistmodel.h" - -// End of file. diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/ipssosaoplugin/ipssosaoplugin.pro --- a/ipsservices/ipssosaoplugin/ipssosaoplugin.pro Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/ipssosaoplugin/ipssosaoplugin.pro Thu May 27 12:43:55 2010 +0300 @@ -104,7 +104,6 @@ -lmsgs \ -letext \ -limcm \ - -lgsecomplugin \ -leikcore \ -lipssosplugin \ -lxqsettingsmanager \ diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/ipssosplugin/ipssosplugin.pro --- a/ipsservices/ipssosplugin/ipssosplugin.pro Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/ipssosplugin/ipssosplugin.pro Thu May 27 12:43:55 2010 +0300 @@ -161,8 +161,6 @@ -lmsgs \ -letext \ -limcm \ - -lgsecomplugin \ - -lgsframework \ -lfsmailframework \ -lfsfwcommonlib \ -lbafl \ diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp --- a/ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp Thu May 27 12:43:55 2010 +0300 @@ -287,9 +287,13 @@ RFile file = aPart->GetContentFileL(); CleanupClosePushL(file); + // if we don't do SetSize(0) characters from the original mail are left in the end of the mail + // if the modified mail contains less characters. + User::LeaveIfError( file.SetSize( 0 ) ); + // Write new content to text/html part file - async function - file.Write(0, *iDataBuffer, iDataBuffer->Length(), iStatus); - + file.Write( 0, *iDataBuffer, iDataBuffer->Length(), iStatus ); + CleanupStack::PopAndDestroy(2, data16); SetActive(); } diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp --- a/ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp Thu May 27 12:43:55 2010 +0300 @@ -2779,7 +2779,8 @@ TBool ret( EFalse ); for ( TInt i = 0; i < iOperations.Count(); i++ ) { - if( iOperations[i]->BaseOperation()->FSMailboxId() == aMailboxId ) + if( iOperations[i]->BaseOperation() && + iOperations[i]->BaseOperation()->FSMailboxId() == aMailboxId ) { ret = ETrue; } diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/nmimapclientplugin/src/nmimapclientplugin.cpp --- a/ipsservices/nmimapclientplugin/src/nmimapclientplugin.cpp Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/nmimapclientplugin/src/nmimapclientplugin.cpp Thu May 27 12:43:55 2010 +0300 @@ -176,7 +176,7 @@ SIGNAL(goOffline(const NmId &)), this, SLOT(goOffline(const NmId &))); } - + handleRequest(NmActionResponseCommandSettings, mMenuRequest); mSettingsViewLauncher->launchSettingsView(id, mailbox->name()); } diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/nmipssettings/inc/nmipssettingslabeledcombobox.h --- a/ipsservices/nmipssettings/inc/nmipssettingslabeledcombobox.h Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/nmipssettings/inc/nmipssettingslabeledcombobox.h Thu May 27 12:43:55 2010 +0300 @@ -52,6 +52,7 @@ signals: void currentIndexChanged(int index); + void propertyChanged(QMap properties); private slots: diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/nmipssettings/inc/nmipssettingstimeeditor.h --- a/ipsservices/nmipssettings/inc/nmipssettingstimeeditor.h Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/nmipssettings/inc/nmipssettingstimeeditor.h Thu May 27 12:43:55 2010 +0300 @@ -63,10 +63,14 @@ // Now owned. HbPushButton *mButton; + // Owned. HbDialog *mTimePickerDialog; QTime mTime; QString mLabel; + + // Not owned. + HbAction *mPrimaryAction; }; #endif // NMIPSSETTINGSTIMEEDITOR_H diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/nmipssettings/src/nmipssettingscustomitem.cpp --- a/ipsservices/nmipssettings/src/nmipssettingscustomitem.cpp Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/nmipssettings/src/nmipssettingscustomitem.cpp Thu May 27 12:43:55 2010 +0300 @@ -78,6 +78,8 @@ switch (type) { case LabeledComboBox: { widget = new NmIpsSettingsLabeledComboBox(); + connect(widget, SIGNAL(propertyChanged(QMap)), + this, SLOT(propertyChanged(QMap))); break; } case TimeEditor: { diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/nmipssettings/src/nmipssettingshelper.cpp --- a/ipsservices/nmipssettings/src/nmipssettingshelper.cpp Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/nmipssettings/src/nmipssettingshelper.cpp Thu May 27 12:43:55 2010 +0300 @@ -1023,7 +1023,7 @@ HbDataFormModelItem *item = mContentItems.value(IpsServices::ReceptionWeekDays); QVariant widgetData = item->contentWidgetData(QString("selectedItems")); QList selectedIndexes = widgetData.value< QList >(); - QVariant itemData = item->data(HbDataFormModelItem::HbDataFormModelItem::DescriptionRole + 1); + QVariant itemData = item->data(HbDataFormModelItem::DescriptionRole + 1); QList itemValues = itemData.value< QList >(); int days(0); @@ -1059,7 +1059,7 @@ void NmIpsSettingsHelper::refreshPeriodModified(int index) { HbDataFormModelItem* item = mContentItems.value(IpsServices::ReceptionRefreshPeriodDayTime); - QVariant itemData = item->data(HbDataFormModelItem::HbDataFormModelItem::DescriptionRole + 1); + QVariant itemData = item->data(HbDataFormModelItem::DescriptionRole + 1); int selectedValue = itemData.value< QList< QVariant > >().at(index).toInt(); handleReceivingScheduleSettingChange(IpsServices::ReceptionRefreshPeriodDayTime, selectedValue); } diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/nmipssettings/src/nmipssettingslabeledcombobox.cpp --- a/ipsservices/nmipssettings/src/nmipssettingslabeledcombobox.cpp Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/nmipssettings/src/nmipssettingslabeledcombobox.cpp Thu May 27 12:43:55 2010 +0300 @@ -56,9 +56,6 @@ // Connect signals and slots. connect(mComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(comboBoxIndexChanged(int)), Qt::UniqueConnection); - - connect(mComboBox, SIGNAL(currentIndexChanged(int)), - this, SIGNAL(currentIndexChanged(int)), Qt::UniqueConnection); } /*! @@ -134,4 +131,8 @@ { QString label(mLabelTexts.value(index)); mLabel->setPlainText(label); + QMap properties; + properties.insert("currentIndex", index); + emit propertyChanged(properties); + emit currentIndexChanged(index); } diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/nmipssettings/src/nmipssettingstimeeditor.cpp --- a/ipsservices/nmipssettings/src/nmipssettingstimeeditor.cpp Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/nmipssettings/src/nmipssettingstimeeditor.cpp Thu May 27 12:43:55 2010 +0300 @@ -39,7 +39,8 @@ NmIpsSettingsTimeEditor::NmIpsSettingsTimeEditor(QGraphicsItem *parent, Qt::WindowFlags wFlags) : HbWidget(parent, wFlags), mButton(0), - mTimePickerDialog(0) + mTimePickerDialog(0), + mPrimaryAction(0) { // Create widget layout. QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical); @@ -130,11 +131,12 @@ // Set dialog actions. HbAction *okAction = new HbAction(QString(hbTrId("txt_common_button_ok")), mTimePickerDialog); - mTimePickerDialog->setPrimaryAction(okAction); - - HbAction *cancelAction = new HbAction(QString(hbTrId("txt_common_button_cancel")), - mTimePickerDialog); - mTimePickerDialog->setSecondaryAction( cancelAction ); + mTimePickerDialog->addAction(okAction); + mPrimaryAction = okAction; + + HbAction *cancelAction = new HbAction(QString(hbTrId("txt_common_button_cancel")), + mTimePickerDialog); + mTimePickerDialog->addAction(cancelAction); // Show the dialog. mTimePickerDialog->open(this, SLOT(handleTimeAction(HbAction *))); @@ -145,7 +147,7 @@ */ void NmIpsSettingsTimeEditor::handleTimeAction(HbAction *action) { - if (action == mTimePickerDialog->primaryAction()) { + if (action==mPrimaryAction) { // Get the time from the picker. QTime newTime = static_cast (mTimePickerDialog->contentWidget())->time(); diff -r 2dc6caa42ec3 -r 9ba4404ef423 ipsservices/nmpopclientplugin/src/nmpopclientplugin.cpp --- a/ipsservices/nmpopclientplugin/src/nmpopclientplugin.cpp Fri May 14 15:41:10 2010 +0300 +++ b/ipsservices/nmpopclientplugin/src/nmpopclientplugin.cpp Thu May 27 12:43:55 2010 +0300 @@ -33,8 +33,8 @@ Constructs a new NmPopClientPlugin. */ NmPopClientPlugin::NmPopClientPlugin() -: mSettingsViewLauncher(NULL), -mListOptionsMenuRequest(NULL) +: mListOptionsMenuRequest(NULL), +mSettingsViewLauncher(NULL) { NMLOG("NmPopClientPlugin::NmPopClientPlugin()-->"); NMLOG("<--NmPopClientPlugin::NmPopClientPlugin()"); @@ -182,6 +182,7 @@ this, SLOT(goOffline(const NmId &))); } + handleRequest(NmActionResponseCommandSettings, mMenuRequest); mSettingsViewLauncher->launchSettingsView(id, mailbox->name()); }