Revision: 201019
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 12:43:55 +0300
changeset 27 9ba4404ef423
parent 23 2dc6caa42ec3
child 30 759dc5235cdb
Revision: 201019 Kit: 2010121
emailservices/emaildebug/inc/emailtrace.h
emailservices/emaildebug/inc/emailtraceconfig.hrh
emailservices/emailserver/inc/fsmailserverconst.h
emailservices/emailserver/inc/fsmailserverconst.hrh
emailservices/emailservermonitor/inc/emailshutdownconst.h
emailservices/emailservermonitor/inc/emailshutdownconst.hrh
emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp
emailservices/nmailagent/inc/nmmailagent.h
emailservices/nmailagent/src/nmmailagent.cpp
emailservices/nmailbase/inc/nmcommon.h
emailservices/nmutilities/data/2001E277.txt
emailservices/nmutilities/data/icons/aol.svg
emailservices/nmutilities/data/nmutilities.confml
emailservices/nmutilities/inc/emailmailboxinfo_p.h
emailservices/nmutilities/nmutilities.pro
emailservices/nmutilities/rom/nmutilities.iby
emailservices/nmutilities/src/emailmailboxinfo_p.cpp
emailuis/nmailui/conf/nmeditorview.docml
emailuis/nmailui/conf/nmmessagelistview.docml
emailuis/nmailui/conf/nmmessagesearchlistview.docml
emailuis/nmailui/inc/nmactionresponse.h
emailuis/nmailui/inc/nmapplication.h
emailuis/nmailui/inc/nmattachmentmanager.h
emailuis/nmailui/inc/nmbaseview.h
emailuis/nmailui/inc/nmeditorheader.h
emailuis/nmailui/inc/nmeditorview.h
emailuis/nmailui/inc/nmmailboxlistview.h
emailuis/nmailui/inc/nmmessagelistview.h
emailuis/nmailui/inc/nmmessagelistviewitem.h
emailuis/nmailui/inc/nmmessagesearchlistview.h
emailuis/nmailui/inc/nmrecipientfield.h
emailuis/nmailui/inc/nmuiheaders.h
emailuis/nmailui/inc/nmuiviewids.h
emailuis/nmailui/inc/nmutilities.h
emailuis/nmailui/inc/nmviewerview.h
emailuis/nmailui/src/nmapplication.cpp
emailuis/nmailui/src/nmattachmentmanager.cpp
emailuis/nmailui/src/nmbaseview.cpp
emailuis/nmailui/src/nmeditorheader.cpp
emailuis/nmailui/src/nmeditorview.cpp
emailuis/nmailui/src/nmmailboxlistview.cpp
emailuis/nmailui/src/nmmailboxlistviewitem.cpp
emailuis/nmailui/src/nmmailboxselectiondialog.cpp
emailuis/nmailui/src/nmmailboxserviceinterface.cpp
emailuis/nmailui/src/nmmessagelistview.cpp
emailuis/nmailui/src/nmmessagelistviewitem.cpp
emailuis/nmailui/src/nmmessagesearchlistview.cpp
emailuis/nmailui/src/nmrecipientfield.cpp
emailuis/nmailui/src/nmsendserviceinterface.cpp
emailuis/nmailui/src/nmutilities.cpp
emailuis/nmailui/src/nmviewerserviceinterface.cpp
emailuis/nmailui/src/nmviewerview.cpp
emailuis/nmailuiengine/bwins/nmailuiengineu.def
emailuis/nmailuiengine/eabi/nmailuiengineu.def
emailuis/nmailuiengine/inc/nmapplicationstateinterface.h
emailuis/nmailuiengine/inc/nmbaseclientplugin.h
emailuis/nmailuiengine/inc/nmdatamanager.h
emailuis/nmailuiengine/inc/nmdatapluginfactory.h
emailuis/nmailuiengine/inc/nmdataplugininterface.h
emailuis/nmailuiengine/inc/nmmailboxmetadata.h
emailuis/nmailuiengine/inc/nmmessagelistmodel.h
emailuis/nmailuiengine/inc/nmmessagesearchlistmodel.h
emailuis/nmailuiengine/inc/nmuiengine.h
emailuis/nmailuiengine/inc/nmuiengineheaders.h
emailuis/nmailuiengine/nmailuiengine.pro
emailuis/nmailuiengine/src/nmbaseclientplugin.cpp
emailuis/nmailuiengine/src/nmdatamanager.cpp
emailuis/nmailuiengine/src/nmdatapluginfactory.cpp
emailuis/nmailuiengine/src/nmmailboxlistmodel.cpp
emailuis/nmailuiengine/src/nmmailboxmetadata.cpp
emailuis/nmailuiengine/src/nmmessagelistmodel.cpp
emailuis/nmailuiengine/src/nmmessagesearchlistmodel.cpp
emailuis/nmailuiengine/src/nmoperation.cpp
emailuis/nmailuiengine/src/nmuiengine.cpp
emailuis/nmailuiwidgets/inc/nmeditortextedit.h
emailuis/nmailuiwidgets/src/nmeditortextedit.cpp
emailuis/nmframeworkadapter/inc/nmframeworkadapter.h
emailuis/nmframeworkadapter/inc/nmframeworkadapterheaders.h
emailuis/nmframeworkadapter/inc/nmfwaaddattachmentsoperation.h
emailuis/nmframeworkadapter/inc/nmfwamessagefetchingoperation.h
emailuis/nmframeworkadapter/inc/nmfwamessagepartfetchingoperation.h
emailuis/nmframeworkadapter/inc/nmfwamessagepartsfetchingoperation.h
emailuis/nmframeworkadapter/inc/nmmailboxsearchobserver.h
emailuis/nmframeworkadapter/nmframeworkadapter.pro
emailuis/nmframeworkadapter/src/nmframeworkadapter.cpp
emailuis/nmframeworkadapter/src/nmfwaaddattachmentsoperation.cpp
emailuis/nmframeworkadapter/src/nmfwamessagefetchingoperation.cpp
emailuis/nmframeworkadapter/src/nmfwamessagepartfetchingoperation.cpp
emailuis/nmframeworkadapter/src/nmfwamessagepartsfetchingoperation.cpp
emailuis/nmframeworkadapter/src/nmmailboxsearchobserver.cpp
emailuis/nmsettingui/src/nmmailboxsettingview.cpp
inc/emailshutdownconst.h
inc/emailshutdownconst.hrh
inc/nmapplicationstateinterface.h
inc/nmmessagesearchlistmodel.h
ipsservices/ipssosaoplugin/ipssosaoplugin.pro
ipsservices/ipssosplugin/ipssosplugin.pro
ipsservices/ipssosplugin/src/ipsplgmessagepartstoreroperation.cpp
ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp
ipsservices/nmimapclientplugin/src/nmimapclientplugin.cpp
ipsservices/nmipssettings/inc/nmipssettingslabeledcombobox.h
ipsservices/nmipssettings/inc/nmipssettingstimeeditor.h
ipsservices/nmipssettings/src/nmipssettingscustomitem.cpp
ipsservices/nmipssettings/src/nmipssettingshelper.cpp
ipsservices/nmipssettings/src/nmipssettingslabeledcombobox.cpp
ipsservices/nmipssettings/src/nmipssettingstimeeditor.cpp
ipsservices/nmpopclientplugin/src/nmpopclientplugin.cpp
--- 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 <e32debug.h>
+#include <qdebug.h>
+#include <qfile.h>
 
-#ifdef TRACE_INTO_FILE
-#include <flogger.h> // RFileLogger
-#else
-#include <e32debug.h> // 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 */
--- 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
--- 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_
-
-//<cmail>
-#include "fsmailserverconst.hrh"
-//</cmail>
-
-///////////////////////////////////////////////////////////////////////////
-// 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_*/
--- 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_*/
--- 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 <e32cmn.h>                 // 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
--- 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
--- 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"
+//<qmail> removing #include "emailshutdownconst.h"
 //</cmail>
 
 // =========
@@ -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
-        
+
+    // <qmail> removed code to observe shutdown commands
+
     __LOG_EXIT
     } // end ConstructL
 
--- 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;
--- 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;
 }
 
--- 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)
 
Binary file emailservices/nmutilities/data/2001E277.txt has changed
--- /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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="44" height="44" viewBox="0 0 44 44">
+<rect fill="none" height="44" width="44"/>
+<circle cx="16.782" cy="22.024" fill="#0360A8" r="9.291"/>
+<path d="M4.518,17.73c0.18,0.019,0.272-0.093,0.379-0.323c0.119-0.258,0.648-1.375,0.735-1.551 c0.231-0.471,1.167-1.821,1.349-2.031c0.863-1.013,1.889-1.956,3.134-2.73c1.509-0.926,3.344-1.63,5.262-1.864 c0.462-0.061,1.577-0.099,1.793-0.087c0.427,0.012,1.587,0.132,1.617,0.131c0.085,0.004,0.271-0.014,0.313-0.167 c0.016-0.052-0.005-0.125-0.032-0.156c-0.004-0.004-0.012-0.015-0.014-0.02c-0.019-0.028-0.09-0.087-0.104-0.098 c-0.138-0.105-1.564-0.922-1.657-0.977c-1.035-0.593-9.261-5.346-9.288-5.362C7.279,2.08,6.6,1.943,6.048,2.021 c-0.405,0.057-0.777,0.255-1.045,0.55C4.74,2.853,4.545,3.249,4.441,3.717C4.385,3.978,4.356,4.3,4.356,4.615 c0,0.485-0.01,12.065-0.006,12.406C4.353,17.416,4.326,17.697,4.518,17.73z" fill="#0360A8"/>
+<path d="M19.096,34.852c-0.078-0.121-0.215-0.131-0.438-0.109c-0.053,0-0.107,0.014-0.155,0.018 c-1.094,0.143-2.195,0.131-3.269-0.012c-1.696-0.223-3.345-0.786-4.828-1.652c-1.494-0.877-2.82-2.066-3.885-3.531 c-0.253-0.356-0.496-0.729-0.715-1.111C5.504,27.93,4.97,26.734,4.94,26.669c-0.065-0.136-0.055-0.131-0.143-0.278 c-0.042-0.06-0.091-0.101-0.154-0.117c-0.062-0.017-0.1-0.012-0.135-0.004c-0.079,0.026-0.097,0.045-0.124,0.135 c-0.005,0.029-0.009,0.113-0.017,0.193c-0.002,0.029-0.004,0.135-0.007,0.262c-0.005,0.205-0.003,0.16-0.003,0.355 c0,0.165,0,0.328,0,0.495c0,0.181,0,0.358,0,0.537c0,0.106,0,0.219,0,0.333c0,0.466,0,0.938,0.005,1.411c0,0.725,0,1.446,0,2.174 c0,1.194,0,2.388,0.003,3.58c0,1.196,0,2.392,0,3.584c0,0.034,0,0.065,0,0.103c0,1.418,0.623,2.315,1.571,2.524 c0.376,0.08,0.797,0.06,1.25-0.088c0.256-0.078,0.525-0.199,0.798-0.354c0.427-0.244,10.373-5.979,10.896-6.285 c0.016-0.004,0.068-0.045,0.122-0.097C19.067,35.061,19.154,34.964,19.096,34.852z" fill="#0360A8"/>
+<path d="M26.605,30.391c-0.17-0.162-0.008-0.394,0.256-0.738c0.143-0.188,0.679-0.938,0.773-1.09 c0.336-0.537,0.648-1.09,0.912-1.662c0.123-0.264,0.232-0.531,0.326-0.807c0.456-1.345,0.786-2.753,0.786-4.181 c-0.015-1.726-0.251-3.33-0.929-5.03c-0.158-0.406-0.66-1.395-0.722-1.507c-0.223-0.418-0.538-0.869-0.884-1.364 c-0.282-0.362-0.24-0.553-0.137-0.604c0.021-0.012,0.078-0.031,0.152-0.009c0.03,0.009,0.09,0.021,0.192,0.077 c0.071,0.033,0.205,0.105,0.325,0.174c0.135,0.081,1.1,0.656,1.195,0.708c1.027,0.604,2.023,1.21,3.054,1.812 c1.036,0.596,6.225,3.678,6.251,3.693c0.722,0.426,1.178,0.953,1.373,1.472c0.143,0.379,0.154,0.779,0.031,1.16 c-0.111,0.366-0.349,0.724-0.701,1.044c-0.199,0.184-0.44,0.35-0.715,0.506c-0.422,0.242-10.662,6.021-10.969,6.189 C26.891,30.393,26.738,30.503,26.605,30.391z" fill="#0360A8"/>
+<path d="M15.184,40.294c0,0.92,0.72,1.646,1.634,1.646c0.895,0,1.644-0.752,1.644-1.646 c0-0.938-0.706-1.647-1.644-1.647C15.918,38.646,15.184,39.387,15.184,40.294z M15.435,40.275c0-0.77,0.624-1.393,1.383-1.393 c0.759,0,1.382,0.637,1.382,1.424c0,0.771-0.623,1.396-1.382,1.396C16.069,41.704,15.435,41.051,15.435,40.275z" fill="#0360A8"/>
+<path d="M17.127,40.645l-0.215-0.31l0.05-0.008c0.289-0.031,0.464-0.224,0.464-0.515 c0-0.293-0.201-0.441-0.592-0.441c0,0-0.479,0-0.532,0v1.816h0.301c0-0.059-0.004-0.84-0.004-0.84l0.026,0.006l0.529,0.834 c0,0,0.25,0.006,0.327,0.004C17.432,41.111,17.127,40.645,17.127,40.645z M16.592,40.145v-0.518c0.044,0,0.209,0.005,0.209,0.005 c0.241,0,0.286,0.077,0.286,0.222c0,0.071-0.027,0.295-0.366,0.295C16.721,40.148,16.624,40.145,16.592,40.145z" fill="#0360A8"/>
+</svg>
\ No newline at end of file
Binary file emailservices/nmutilities/data/nmutilities.confml has changed
--- 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
--- 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 <platform_paths.hrh>" \
                              "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" \
--- 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 <bldvariant.hrh>
 
 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__
--- 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> ();
-
-    QString pathToRcc =
-        manager.readItemValue(rccKey, XQSettingsManager::TypeString).value<QString> ();
-    if (!mIsResourceLoaded) {
-        mIsResourceLoaded = QResource::registerResource(pathToRcc);
-    }
+    mWlbDomainName = manager.readItemValue(wlbKey, XQSettingsManager::TypeString).value<QString> ();    
 }
 /*!
      private destructor
@@ -131,6 +124,10 @@
     QString domainName = "";
     if (identifier.canConvert<QString> ()) {
         domainName = identifier.value<QString> ();
+        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(".");
--- 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 @@
                 <widget name="scrollAreaContents" role="HbScrollArea:contents" type="HbWidget">
                     <widget name="container" type="HbWidget">
                         <widget name="HeaderLayout" type="HbWidget">
-                            <widget name="ToHorizontalLayout" type="HbWidget">
-                                <widget name="EditorHeaderToLabel" type="HbLabel">
-                                    <sizehint height="5un" type="PREFERRED" width="10un"/>
-                                    <sizehint height="5un" type="MINIMUM" width="1.89552un"/>
-                                    <string locid="txt_mail_editor_to" name="plainText" value="To:"/>
-                                    <fontspec name="fontSpec" role="Secondary" textheight="23.45"/>
-                                </widget>
-                                <widget name="EditorHeaderToEdit" plugin="nmailuiwidgetsplugin" type="NmRecipientLineEdit">
-                                    <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-                                    <sizehint height="5un" type="PREFERRED" width="8.26269un"/>
-                                    <sizehint height="5un" type="MINIMUM" width="0un"/>
-                                    <fontspec name="fontSpec" role="Secondary" textheight="3.5un"/>
-                                    <integer name="maxRows" value="256"/>
-                                    <string name="alignment" value="AlignAbsolute"/>
-                                    <string name="text" value=""/>
-                                </widget>
-                                <widget name="EditorHeaderToButton" type="HbPushButton">
-                                    <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-                                    <sizehint height="5un" type="FIXED" width="9.5un"/>
-                                    <sizehint height="5un" type="MINIMUM" width="9.5un"/>
-                                    <sizehint height="5un" type="MAXIMUM" width="9.5un"/>
-                                    <string name="text" value=""/>
-                                </widget>
-                                <real name="z" value="0"/>
-                                <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Minimum" verticalStretch="0"/>
-                                <sizehint height="5un" type="MINIMUM" width="23.8806un"/>
-                                <layout orientation="Horizontal" spacing="1un" type="linear">
-                                    <contentsmargins bottom="0un" left="var(hb-param-margin-gene-left)" right="var(hb-param-margin-gene-right)" top="0un"/>
-                                    <linearitem itemname="EditorHeaderToLabel"/>
-                                    <linearitem itemname="EditorHeaderToEdit"/>
-                                    <linearitem itemname="EditorHeaderToButton"/>
-                                </layout>
-                            </widget>
-                            <widget name="EditorHeaderRecipientGB" type="HbGroupBox">
-                                <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Minimum" verticalStretch="0"/>
-                                <bool name="collapsable" value="FALSE"/>
-                                <bool name="collapsed" value="FALSE"/>
-                                <fontspec name="fontSpec" role="Secondary" textheight="23.45"/>
+                            <widget name="RecipientFields" type="HbWidget">
+                                <real name="z" value="1"/>
+                                <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="MinimumExpanding" verticalStretch="0"/>
+                                <sizehint height="5un" type="PREFERRED" width="23un"/>
+                                <sizehint height="5un" type="MINIMUM" width="23un"/>
+                                <contentsmargins bottom="0un" left="var(hb-param-margin-gene-left)" right="var(hb-param-margin-gene-right)" top="0un"/>
                             </widget>
                             <widget name="SubjectHorizontalLayout" type="HbWidget">
                                 <widget name="EditorHeaderSubjectLabel" type="HbLabel">
-                                    <sizehint height="5un" type="PREFERRED" width="11un"/>
+                                    <sizehint height="5un" type="PREFERRED" width="12.5un"/>
                                     <string locid="txt_mail_editor_subject" name="plainText" value="Subject:"/>
                                     <fontspec name="fontSpec" role="Secondary" textheight="23.45"/>
                                 </widget>
@@ -84,12 +52,11 @@
                             </widget>
                             <real name="z" value="1"/>
                             <sizepolicy horizontalPolicy="Minimum" horizontalStretch="0" verticalPolicy="Minimum" verticalStretch="0"/>
-                            <sizehint height="18un" type="MINIMUM" width="53.73134un"/>
+                            <sizehint height="5un" type="MINIMUM" width="53.73134un"/>
                             <sizehint height="200un" type="MAXIMUM" width="2504062.01158un"/>
                             <layout orientation="Vertical" spacing="1un" type="linear">
                                 <contentsmargins bottom="0un" left="0un" right="0un" top="var(hb-param-margin-gene-top)"/>
-                                <linearitem itemname="ToHorizontalLayout"/>
-                                <linearitem itemname="EditorHeaderRecipientGB"/>
+                                <linearitem itemname="RecipientFields"/>
                                 <linearitem itemname="SubjectHorizontalLayout"/>
                                 <linearitem itemname="attachmentListWidget"/>
                             </layout>
@@ -125,7 +92,7 @@
                     </layout>
                 </widget>
                 <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
-                <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Expanding" verticalStretch="0"/>
+                <sizepolicy horizontalPolicy="Ignored" horizontalStretch="0" verticalPolicy="Expanding" verticalStretch="0"/>
             </widget>
             <layout type="anchor">
                 <anchoritem dst="scrollArea" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
--- 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 @@
                 <bool name="collapsable" value="FALSE"/>
             </widget>
             <widget name="syncIcon" type="HbLabel">
-                <real name="z" value="6"/>
-                <sizehint type="PREFERRED" width="expr(var(hb-param-graphic-size-primary-small) )"/>
-            </widget>
-            <widget name="folderLabel" type="HbLabel">
-                <real name="z" value="5"/>
+                <enums name="alignment" value="AlignAbsolute|AlignLeft|AlignVCenter|AlignJustify|AlignHCenter|AlignLeading"/>
+                <real name="z" value="7"/>
+                <sizehint height="expr(var(hb-param-graphic-size-primary-small) )" type="PREFERRED" width="expr(var(hb-param-graphic-size-primary-small) )"/>
+                <sizehint height="expr(var(hb-param-graphic-size-primary-small) )" type="MINIMUM" width="expr(var(hb-param-graphic-size-primary-small) )"/>
                 <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
-                <sizehint type="PREFERRED" width="45.97015un"/>
-                <string name="plainText" value="Folder"/>
-                <fontspec name="fontSpec" role="Secondary" textheight="var(hb-param-text-height-secondary)"/>
             </widget>
             <real name="z" value="0"/>
             <layout type="anchor">
@@ -43,10 +39,6 @@
                 <anchoritem dst="MessageTreeList" dstEdge="TOP" spacing="0un" src="labelGroupBox" srcEdge="BOTTOM"/>
                 <anchoritem dst="MessageTreeList" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="MessageTreeList" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
-                <anchoritem dst="folderLabel" dstEdge="LEFT" spacing="var(hb-param-margin-gene-left)" src="" srcEdge="LEFT"/>
-                <anchoritem dst="folderLabel" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
-                <anchoritem dst="folderLabel" dstEdge="BOTTOM" spacing="0un" src="labelGroupBox" srcEdge="BOTTOM"/>
-                <anchoritem dst="folderLabel" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-middle-horizontal)" src="syncIcon" srcEdge="LEFT"/>
                 <anchoritem dst="syncIcon" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
                 <anchoritem dst="syncIcon" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-right)" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="syncIcon" dstEdge="BOTTOM" spacing="0un" src="labelGroupBox" srcEdge="BOTTOM"/>
--- 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 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="1.0">
+<hbdocument version="1.1">
     <widget name="NmMessageListView" type="HbView">
         <widget name="content" role="HbView:widget" type="HbWidget">
             <widget name="MessageTreeList" type="HbTreeView">
                 <real name="z" value="4"/>
                 <sizehint height="67.7612un" type="PREFERRED"/>
             </widget>
-            <widget name="MessageListNoMessages" type="HbLabel">
-                <real name="z" value="5"/>
-                <string locid="txt_mail_dblist_no_messages" name="plainText"/>
-            </widget>
             <widget name="SearchBarContainer" type="HbWidget">
                 <widget name="LineEdit" type="HbLineEdit">
-                    <real name="z" value="10"/>
-                    <sizehint type="PREFERRED" width="51.04478un"/>
-                    <string name="text" value="" />
+                    <fontspec name="fontSpec" role="Primary" textheight="26.8"/>
                 </widget>
                 <widget name="PushButton" type="HbPushButton">
-                    <real name="z" value="11"/>
-                    <sizehint type="PREFERRED" width="18.50746un"/>
-                    <string name="text" locid="txt_mail_list_search" />
+                    <sizehint type="MINIMUM" width="9un"/>
                 </widget>
                 <real name="z" value="8"/>
-                <sizehint height="8un" type="PREFERRED" width="54.62687un"/>
                 <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Expanding" verticalStretch="0"/>
-                <sizehint height="4un" type="MINIMUM"/>
-                <sizehint height="15un" type="MAXIMUM"/>
+                <sizehint height="9.25373un" type="PREFERRED" width="53.73134un"/>
+                <sizehint height="6.5un" type="MINIMUM"/>
                 <layout orientation="Horizontal" type="linear">
                     <linearitem itemname="LineEdit"/>
                     <linearitem itemname="PushButton"/>
@@ -33,9 +24,17 @@
             </widget>
             <widget name="InfoLabel" type="HbLabel">
                 <real name="z" value="9"/>
-                <string name="plainText" value="Label"/>
-                <sizehint height="4.62687un" type="PREFERRED" width="53.8806un"/>
-                <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Minimum" verticalStretch="0"/>
+                <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+                <contentsmargins bottom="0.5un" left="1.5un" right="1.5un" top="0.5un"/>
+                <string name="plainText" value="Searching..."/>
+                <fontspec name="fontSpec" role="Secondary" textheight="23.45"/>
+            </widget>
+            <widget name="MessageListNoMessages" type="HbLabel">
+                <enums name="textWrapping" value="TextWordWrap"/>
+                <enums name="alignment" value="AlignLeft|AlignVCenter|AlignHCenter|AlignLeading"/>
+                <real name="z" value="10"/>
+                <sizehint height="15.22388un" type="PREFERRED" width="43.73134un"/>
+                <string locid="txt_mail_dblist_no_messages_matched_your_search" name="plainText" value="No messages matched your search. Try another search term. "/>
             </widget>
             <real name="z" value="0"/>
             <layout type="anchor">
@@ -46,17 +45,17 @@
                 <anchoritem dst="MessageTreeList" dstEdge="TOP" spacing="0un" src="InfoLabel" srcEdge="BOTTOM"/>
                 <anchoritem dst="MessageTreeList" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="MessageTreeList" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
-                <anchoritem dst="MessageListNoMessages" dstEdge="LEFT" spacing="12.14925un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="MessageListNoMessages" dstEdge="TOP" spacing="10un" src="MessageTreeList" srcEdge="TOP"/>
-                <anchoritem dst="MessageListNoMessages" dstEdge="RIGHT" spacing="-11.82089un" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="MessageListNoMessages" dstEdge="LEFT" spacing="4.77612un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="MessageListNoMessages" dstEdge="TOP" spacing="2.54478un" src="InfoLabel" srcEdge="BOTTOM"/>
+                <anchoritem dst="MessageListNoMessages" dstEdge="RIGHT" spacing="-5.22388un" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="SearchBarContainer" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
                 <anchoritem dst="SearchBarContainer" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
                 <anchoritem dst="SearchBarContainer" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
             </layout>
         </widget>
-        <string name="title" value="View"/>
+        <string name="title" value="Search"/>
     </widget>
-    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
+    <metadata activeUIState="Common ui state" display="NHD-3.2-inch_portrait" unit="un">
         <uistate name="Common ui state" sections="#common"/>
         <dummydata objectName="MessageTreeList" section="#common" value="0"/>
     </metadata>
--- 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
 };
 
 
--- 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();
--- 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<NmId> &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<NmOperation> mFetchOperation;      // Not owned
+    QPointer<NmOperation> mMsgFetchOperation;      // Not owned
     NmAttachmentFetchObserver *mFetchObserver;  // Not owned
+    NmMessage *fetchMsg;
     NmId mAttaId;
     int mProgressValue;
     bool mIsFetching;
--- 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;
 };
 
 
--- 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_ */
--- 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<NmOperation> mRemoveAttachmentOperation;                // Not owned 
     QPointer<NmCheckOutboxOperation> mCheckOutboxOperation;          // Not owned 
 
-    HbProgressDialog *mWaitDialog; // Owned.
-    
-    NmAttachmentPicker* mAttachmentPicker;    // Owned    
+    HbProgressDialog *mWaitDialog;         // Owned.    
+    HbMessageBox* mQueryDialog;            // Owned
+    NmAttachmentPicker* mAttachmentPicker; // Owned    
+    bool mCcBccFieldVisible;
 };
 
 
--- 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();
--- 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_ */
--- 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
--- 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
--- 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();
--- 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 <nmmailboxlistmodel.h>
 #include <nmmessagelistmodel.h>
 #include <nmmessagelistmodelitem.h>
-#include <nmmessagesearchlistmodel.h>
 #include <nmmessage.h>
 #include <nmaddress.h>
 #include <nmoperation.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
 
--- 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);
 
--- 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_ */
--- 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<NmBaseView*>;
 
-    // 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);
--- 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<NmId> &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<NmId> 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)
--- 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();
 }
 
 /*!
--- 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<HbLabel *>
-        (mDocumentLoader->findWidget(NMUI_EDITOR_TO_LABEL));
-    NmRecipientLineEdit *toEdit = qobject_cast<NmRecipientLineEdit *>
-        (mDocumentLoader->findWidget(NMUI_EDITOR_TO_EDIT));
-    HbPushButton *toButton = qobject_cast<HbPushButton *>
-        (mDocumentLoader->findWidget(NMUI_EDITOR_TO_BUTTON));
-    mToField = new NmRecipientField(toLabel, toEdit, toButton);
+	// Add "To:", "CC:" and "BCC:" fields
+	mHeader = qobject_cast<HbWidget *>
+	        (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<HbGroupBox *>
-        (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<HbLabel *>
@@ -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()));
 }
 
 /*!
--- 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<NmMessagePart*> 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<NmOperation *> 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<NmOperation *> 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();
 }
 
 /*!
--- 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<NmMailboxMetaData*>();
-        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<NmAction*> list;
-        extMngr.getActions(request, list);
-        for (int i=0;i<list.count();i++) {
-            mItemContextMenu->addAction(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.
 */
--- 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<NmMailboxMetaData*>();
     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();
--- 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());
--- 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 =
--- 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<HbLabel *>(mDocumentLoader->findWidget(NMUI_MESSAGE_LIST_FOLDER_LABEL));
+        mFolderLabel = qobject_cast<HbGroupBox *>(mDocumentLoader->findWidget(NMUI_MESSAGE_LIST_FOLDER_LABEL));
 
+        // Disable the old sync icon implementation for the time being
         mSyncIcon = qobject_cast<HbLabel *>(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<QStandardItemModel*>(&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<NmMessageListModelItem*>();
-    if (mItemContextMenu && mLongPressedItem && mLongPressedItem->itemType() ==
-        NmMessageListModelItem::NmMessageItemMessage) {
-
-        // Clear previous items from context menu
-        mItemContextMenu->clearActions();
-        NmUiExtensionManager &extMngr = mApplication.extManager();
-        QList<NmAction*> 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;i<list.count();i++) {
-            mItemContextMenu->addAction(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<NmMessageListModelItem*>();
+        if (mItemContextMenu && mLongPressedItem && mLongPressedItem->itemType() ==
+            NmMessageListModelItem::NmMessageItemMessage) {
+    
+            // Clear previous items from context menu
+            mItemContextMenu->clearActions();
+            NmUiExtensionManager &extMngr = mApplication.extManager();
+            QList<NmAction*> 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;i<list.count();i++) {
+                    mItemContextMenu->addAction(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;        
+        }       
     }
 }
 
--- 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<QVariant>();
+    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<NmAddress>& toRecipients = envelope.toRecipients();
+            QList<NmAddress>& 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;
+}
+
--- 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<HbLabel *>(
-            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<HbLabel *>(
             mDocumentLoader->findWidget(NMUI_MESSAGE_SEARCH_LIST_INFO_LABEL));
@@ -200,6 +202,15 @@
             mInfoLabel->hide();
         }
 
+        // Load the no messages label.
+        mNoMessagesLabel = qobject_cast<HbLabel *>(
+            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<HbLineEdit *>(
             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<NmMessageListModelItem*>();
+        mMsgListModel.data(listViewItem->modelIndex(),
+                           Qt::DisplayRole).value<NmMessageListModelItem*>();
 
-    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<NmMessageListModelItem*>();
 
     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<QSortFilterProxyModel*>(&mSearchListModel));
+            static_cast<QStandardItemModel*>(&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) {
--- 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 &)),
--- 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<QString, QVariant> 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<QString, QVariant> 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()) {
--- 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;
 }
 
 /*!
--- 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 =
--- 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<HbMessageBox*>(sender());
+    if(result == dlg->actions().at(0)) 
+    {
         QList<NmId> 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();
     }
 }
 
--- 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<class NmId> 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<class NmId> &)
-	??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<class NmMailbox *> &)
-	?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<class NmFolder *> &)
-	?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<class NmAction *> &)
-	?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<class NmMessageCreationOperation> 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<class NmAction *> &)
+	??_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<class NmId> 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<class NmStoreEnvelopesOperation> NmUiEngine::setEnvelopes(class NmId const &, class NmId const &, enum NmEnvelopeProperties, class QList<class NmMessageEnvelope const *> 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<class NmMailbox *> &)
+	??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<class NmOperation> 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<class NmAction *> &)
+	?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<class NmMessageEnvelope *> 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<class NmId> 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<class NmOperation *> 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<class NmId> 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<class QObject *> * 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<class NmMessageEnvelope *> 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<class NmMessageCreationOperation> 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<class NmId> 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<class QPluginLoader *> 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<class NmAction *> &)
-	?fetchMessagePart@NmUiEngine@@QAE?AV?$QPointer@VNmOperation@@@@ABVNmId@@000@Z @ 111 NONAME ; class QPointer<class NmOperation> 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<class NmCheckOutboxOperation> 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<class NmAction *> &)
-	?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<class NmFolder *> &)
-	?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<class NmAddAttachmentsOperation> NmUiEngine::addAttachments(class NmMessage const &, class QList<class QString> 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<class NmId> 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<class QObject *> * 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<class NmMessageEnvelope *> &)
-	?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<class NmOperation> 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<class NmMailbox *> &)
-	?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<class NmMessageCreationOperation> 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<class NmMessageCreationOperation> 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<class NmStoreEnvelopesOperation> NmUiEngine::setEnvelopes(class NmId const &, class NmId const &, enum NmEnvelopeProperties, class QList<class NmMessageEnvelope const *> const &)
-	?getActions@NmBaseClientPlugin@@UAEXABVNmActionRequest@@AAV?$QList@PAVNmAction@@@@@Z @ 309 NONAME ; void NmBaseClientPlugin::getActions(class NmActionRequest const &, class QList<class NmAction *> &)
-	?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<class NmId> 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<class NmOperation> 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<class NmOperation> 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<class NmMessageCreationOperation> 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<class NmAction *> &)
+	?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<class NmCheckOutboxOperation> 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<class NmOperation *> 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<class QObject *> * 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<class NmId> 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<class NmMessageCreationOperation> NmUiEngine::createReplyMessage(class NmId const &, class NmId const &, bool)
+	?pluginInstances@NmDataPluginFactory@@QAEPAV?$QList@PAVQObject@@@@XZ @ 169 NONAME ; class QList<class QObject *> * 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<class NmId> 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<class QPluginLoader *> 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<class NmAction *> &)
+	?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<class NmOperation> 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<class NmId> 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<class NmMailbox *> &)
+	?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<class NmId> 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<class NmAddAttachmentsOperation> NmUiEngine::addAttachments(class NmMessage const &, class QList<class QString> 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<class NmFolder *> &)
+	?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<class NmId> &)
+	?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<class NmFolder *> &)
+	?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<class NmMessageEnvelope *> &)
+	?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<class NmId> 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<class NmOperation> NmUiEngine::fetchMessageParts(class NmId const &, class NmId const &, class NmId const &, class QList<class NmId> const &)
+	?setIgnoreFolderIds@NmMessageListModel@@QAEX_N@Z @ 320 NONAME ; void NmMessageListModel::setIgnoreFolderIds(bool)
 
--- 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
 
--- /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_ */
+
+
--- 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<NmAction*> &actionList);
     void createEditorViewCommands(const NmActionRequest &request, QList<NmAction*> &actionList);
     void createViewerViewCommands(const NmActionRequest &request, QList<NmAction*> &actionList);
-    void handleRequest(NmActionResponseCommand command, const NmActionRequest &request);
     void updateEnvelopeProperty(NmEnvelopeProperties property);
 
 protected:
--- 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;
--- 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<QObject*> *pluginInstances();
     QObject *loadPlugin(
         const QDir &pluginDir,
         const QString& pluginName);
 private:
+    NmApplicationStateInterface *applicationStateInterfaceInstance(QObject *plugin);
     NmDataPluginFactory();
     virtual ~NmDataPluginFactory();
     static NmDataPluginFactory   *mInstance;         // owned
--- 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<NmOperation> fetchMessageParts( 
+        const NmId &mailboxId,
+        const NmId &folderId,
+        const NmId &messageId,
+        const QList<NmId> &messagePartIds) = 0;
     
     virtual XQSharableFile messagePartFile(
         const NmId &mailboxId,
--- 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:
 
--- 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 <QStandardItemModel>
 
+#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<NmMessageEnvelope*> &messageEnvelopeList);
+
+    void refresh(const NmId mailboxId,
+                 const NmId folderId,
+                 const QList<NmMessageEnvelope*> &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<NmId> &messageIds);
+
+    void setEnvelopeProperties(NmEnvelopeProperties property,
+                               const QList<NmId> &messageIds);
+
     NmId currentMailboxId();
+
+    void setIgnoreFolderIds(bool ignore);
+
+
 public slots:
-    void handleMessageEvent(
-        NmMessageEvent event,
-        const NmId &folderId,
-        const QList<NmId> &messageIds);
+
+    void handleMessageEvent(NmMessageEvent event,
+                            const NmId &folderId,
+                            const QList<NmId> &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_*/
--- 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 <QSortFilterProxyModel>
-#include <QVector>
-
-#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<NmId> mSearchResults;
-};
-
-#endif /* NMMESSAGESEARCHLISTMODEL_H_ */
-
-// End of file.
--- 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<NmOperation> fetchMessageParts( 
+        const NmId &mailboxId,
+        const NmId &folderId,
+        const NmId &messageId,
+        const QList<NmId> &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<NmOperation*> &preliminaryOperations);
+    void sendMessage(NmMessage *message,
+                     const QList<NmOperation*> &preliminaryOperations);
 
     bool isSendingMessage() const;
 
@@ -145,6 +155,7 @@
     QPointer<NmCheckOutboxOperation> 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<NmId> &messageIds, 
-            const NmId& mailboxId);
+
+    void handleMessageEvent(NmMessageEvent event,
+                            const NmId &folderId,
+                            const QList<NmId> &messageIds, 
+                            const NmId& mailboxId);
     
     void handleMailboxEvent(NmMailboxEvent event,
                             const QList<NmId> &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<NmMessageSendingOperation> mSendOperation;  // Not owned
 };
 
--- 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"
--- 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 \
--- 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);
 }
 
 /*!
--- 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;
+}
--- 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<NmApplicationStateInterface*>(plugin);
+        }
+    return pluginInterface;
+}
+
+/*!
+
+ */
+NmApplicationStateInterface *NmDataPluginFactory::applicationStateInterfaceInstance(NmId mailboxId)
+{
+    return applicationStateInterfaceInstance(pluginInstance(mailboxId));
+}
+
+/*!
+
+ */
 QObject *NmDataPluginFactory::pluginInstance(NmId mailboxId)
 {
     QObject *value(NULL);
--- 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);
--- 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;
+}
--- 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<NmMessageListModelItem*>(itemFromIndex(index));
-        qVariant = QVariant::fromValue(item);
+
+    if (index.isValid()){
+        if (role == Qt::DisplayRole) {
+            NmMessageListModelItem *item =
+                static_cast<NmMessageListModelItem*>(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<NmMessageEnvelope*> &messageEnvelopeList)
+        const NmId mailboxId, 
+        const NmId folderId,
+        const QList<NmMessageEnvelope*> &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<NmId> &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<NmId> &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<NmId&>(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<NmId&>(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<NmId> &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<QStandardItem*> 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<QStandardItem*> 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);
--- 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<NmMessageListModel*>(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<NmMessageListModelItem*>();
-
-        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.
--- 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);
+    }
 }
 
 /*!
--- 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<NmId> &, const NmId&)),
-        mMessageListModel,
+            mMessageListModel,
             SLOT(handleMessageEvent(NmMessageEvent, const NmId &, const QList<NmId> &)),
             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<NmMessageEnvelope*> 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<NmId> &, const NmId&)),
+            mMessageSearchListModel,
+            SLOT(handleMessageEvent(NmMessageEvent, const NmId &, const QList<NmId> &)),
+            Qt::UniqueConnection);
+    }
+
+    // Refresh to set the mailbox ID.
+    QList<NmMessageEnvelope*> messageEnvelopeList;
+    mMessageSearchListModel->refresh(mailboxId, 0, messageEnvelopeList);
+
     return *mMessageSearchListModel;
 }
 
@@ -310,6 +336,25 @@
 /*!
 
 */
+QPointer<NmOperation> NmUiEngine::fetchMessageParts(
+    const NmId &mailboxId,
+    const NmId &folderId,
+    const NmId &messageId,
+    const QList<NmId> &messagePartIds)
+{
+    NMLOG("NmUiEngine::fetchMessageParts() <---");
+    QPointer<NmOperation> 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<NmId> messageIdList;
+    messageIdList.append(messageId);
+
+    mMessageSearchListModel->handleMessageEvent(NmMessageFound,
+                                                folderId,
+                                                messageIdList);
+}
+
+
 /*!
     receives events when going online, and offline.
 */
--- 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<bool, QColor> mCustomTextColor;//!<This property keeps info about using customTextColor and color to use. 
 };
--- a/emailuis/nmailuiwidgets/src/nmeditortextedit.cpp	Fri May 14 15:41:10 2010 +0300
+++ b/emailuis/nmailuiwidgets/src/nmeditortextedit.cpp	Thu May 27 12:43:55 2010 +0300
@@ -30,7 +30,8 @@
     Constructor
 */
 NmEditorTextEdit::NmEditorTextEdit(QGraphicsItem *parent) :
-    HbTextEdit(parent)
+    HbTextEdit(parent),
+    mFirstTimeToScrollPosUpdate(true)
 {
 }
 
@@ -151,6 +152,12 @@
 */
 void NmEditorTextEdit::updateScrollPosition(const QPointF &newPosition)
 {
+    // Temporary fix: When this is called for the first time, the editor is scrolled down for 
+    // some reason so this will restore the scroll position.
+    if(mFirstTimeToScrollPosUpdate) {
+        mFirstTimeToScrollPosUpdate = false;
+        mBackgroundScrollArea->scrollContentsTo(QPointF(0,0));        
+    }
     mBgScrollPosition = newPosition;
 }
 
--- 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 <nmcommon.h>
 #include <nmdataplugininterface.h>
+#include <nmapplicationstateinterface.h>
 #include <CFSMailCommon.h>
 #include <MFSMailEventObserver.h>
 
@@ -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<NmMessageEnvelope*> &messageMetaDataList);
-    
+
+    int listMessages(
+            const NmId& mailboxId,
+            const NmId& folderId,
+            QList<NmMessageEnvelope*> &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<NmOperation> fetchMessageParts( 
+        const NmId &mailboxId,
+        const NmId &folderId,
+        const NmId &messageId,
+        const QList<NmId> &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<NmMessageEnvelope*> &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<NmId> &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<NmMessageEnvelope*> &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 );
--- 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 <nmmessagesendingoperation.h>
 #include <nmaddattachmentsoperation.h>
 #include <nmmessagecreationoperation.h>
+#include <nmdataplugininterface.h>
+#include <nmapplicationstateinterface.h>
 
 // nmailbase
 #include <nmmailbox.h>
@@ -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"
--- 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:
--- 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:
--- 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:
--- /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 <nmoperation.h>
+#include <MFSMailRequestObserver.h>
+
+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<NmId> &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<TFSMailMsgId> mMessagePartIds;
+    
+    CFSMailClient &mMailClient;
+    
+    int mLastProgressValue;
+    
+    TInt mRequestId;
+};
+
+#endif /* NMFWAMESSAGEPARTSFETCHINGOPERATION_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();
 };
--- 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 +=
 
--- 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<NmMessageEnvelope*> &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<TFSMailSortCriteria> 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<CFSMailMessage> messages;
+        CleanupResetAndDestroy<CFSMailMessage>::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<NmMessageEnvelope*> &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<NmMessageEnvelope*> &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<TFSMailSortCriteria> 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<CFSMailMessage> messages;
-            CleanupResetAndDestroy<CFSMailMessage>::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; i<messages.Count(); 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
-        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<NmOperation> NmFrameworkAdapter::fetchMessageParts( 
+    const NmId &mailboxId,
+    const NmId &folderId,
+    const NmId &messageId,
+    const QList<NmId> &messagePartIds)
+{
+    QPointer<NmOperation> 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.
--- 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;
 }
--- 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;
+    }
 }
 
 /*!
--- 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;
+    }
 }
--- /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<NmId> &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<messagePartIds.count(); ++i) {
+        mMessagePartIds.Append(
+            NmConverter::nmIdToMailMsgId(
+                messagePartIds.at(i)));
+    }
+    
+}
+
+/*!
+
+ */
+NmFwaMessagePartsFetchingOperation::~NmFwaMessagePartsFetchingOperation()
+{
+    doCancelOperation();
+}
+
+/*!
+
+ */
+void NmFwaMessagePartsFetchingOperation::RequestResponseL(TFSProgress aEvent, TInt aRequestId)
+{
+    if (aRequestId == mRequestId) {
+        if (aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete ) {
+            completeOperation(aEvent.iError);
+        }
+        else if (aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestCancelled) {
+            completeOperation(NmCancelError);
+        }
+        else if (aEvent.iProgressStatus == TFSProgress::EFSStatus_Status) {
+            int progress = 0;
+            if (aEvent.iMaxCount > 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;
+    }
+}
--- 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;
         }
     }
--- 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);
 
--- 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"
--- 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"
--- /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"
--- 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.
--- 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 \
--- 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 \
--- 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();
 	}
--- 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;
             }
--- 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());
     }
 
--- 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<QString, QVariant> properties);
 
 private slots:
 
--- 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
--- 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<QString, QVariant>)),
+                    this, SLOT(propertyChanged(QMap<QString, QVariant>)));
             break;
             }
         case TimeEditor: {
--- 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<QVariant> selectedIndexes = widgetData.value< QList<QVariant> >();
-    QVariant itemData = item->data(HbDataFormModelItem::HbDataFormModelItem::DescriptionRole + 1);
+    QVariant itemData = item->data(HbDataFormModelItem::DescriptionRole + 1);
     QList<QVariant> itemValues = itemData.value< QList<QVariant> >();
 
     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);
 }
--- 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<QString, QVariant> properties;
+    properties.insert("currentIndex", index);
+    emit propertyChanged(properties);
+    emit currentIndexChanged(index);
 }
--- 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<HbDateTimePicker *> (mTimePickerDialog->contentWidget())->time();
 
--- 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());
     }