# HG changeset patch # User hgs # Date 1277820748 -10800 # Node ID 10eaf342f5394a8ba5cd0edb77cb8baadb727e7c # Parent f83bd4ae1fe37b4a1fb564238368637b202f588e 201025_1 diff -r f83bd4ae1fe3 -r 10eaf342f539 email_plat/nmail_client_api/nmail_client_api.pri --- a/email_plat/nmail_client_api/nmail_client_api.pri Thu Jun 24 14:32:18 2010 +0300 +++ b/email_plat/nmail_client_api/nmail_client_api.pri Tue Jun 29 17:12:28 2010 +0300 @@ -30,5 +30,6 @@ "nmail_client_api/nmapimailboxlisting.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimailboxlisting.h)" \ "nmail_client_api/nmapimessagebody.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessagebody.h)" \ "nmail_client_api/nmapimessageenvelope.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessageenvelope.h)" \ - "nmail_client_api/nmapimessagetask.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessagetask.h)" + "nmail_client_api/nmapimessagetask.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessagetask.h)" \ + "nmail_client_api/nmapimessagemanager.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessagemanager.h)" } diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/emailstore/base_plugin/inc/BasePlugin.h --- a/emailservices/emailstore/base_plugin/inc/BasePlugin.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/emailstore/base_plugin/inc/BasePlugin.h Tue Jun 29 17:12:28 2010 +0300 @@ -86,6 +86,7 @@ friend class CDelayedMessageStorerOp; // friend class CDelayedAddNewOrRemoveChildPartOp; + friend class CDelayedOp; // protected: struct TOngoingFetchInfo; @@ -831,7 +832,7 @@ //does not actually own the observers. RPointerArray iObservers; //async fetch reqs. - RPointerArray iReqs; + RPointerArray iReqs; RPointerArray iDelayedOpReqs; TCacheLine iCacheLine; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/emailstore/base_plugin/src/BasePlugin.cpp --- a/emailservices/emailstore/base_plugin/src/BasePlugin.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/emailstore/base_plugin/src/BasePlugin.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -130,9 +130,12 @@ iReqs.ResetAndDestroy(); iReqs.Close(); - - iDelayedOpReqs.ResetAndDestroy(); + + // Note that all the ops in iDelayedOpReqs array (if any) have already been + // deleted in the destructor of CDelayedOpsManager class. + iDelayedOpReqs.Reset(); iDelayedOpReqs.Close(); + ResetCache(); __LOG_DESTRUCT diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp --- a/emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -72,6 +72,16 @@ //self-destroy. iManager->DequeueOp( *this ); + + //Remove this from iDelayedOpReqs as well. + for ( TInt i = 0; i < iPlugin->iDelayedOpReqs.Count(); i++ ) + { + if ( iPlugin->iDelayedOpReqs[i] == this ) + { + iPlugin->iDelayedOpReqs.Remove( i ); + break; + } + } delete this; } diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/emailstore/message_store/client/inc/MsgStoreObserverHandler.h --- a/emailservices/emailstore/message_store/client/inc/MsgStoreObserverHandler.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/emailstore/message_store/client/inc/MsgStoreObserverHandler.h Tue Jun 29 17:12:28 2010 +0300 @@ -84,6 +84,7 @@ RArray iObservers; RArray iMailBoxObservers; TBuf8 iEventBuffer; + TBool iObjectDeleted; __LOG_DECLARATION diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/emailstore/message_store/client/src/MsgStoreObserverHandler.cpp --- a/emailservices/emailstore/message_store/client/src/MsgStoreObserverHandler.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/emailstore/message_store/client/src/MsgStoreObserverHandler.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -45,6 +45,8 @@ iSession( aSession ) { __LOG_CONSTRUCT( "MsgClient", "CMsgStoreObserverHandler" ) + //initialize variable to false. + iObjectDeleted = EFalse; } // end constructor // ========================================================================== @@ -57,6 +59,10 @@ iMailBoxObservers.Close(); iObservers.Close(); + //object is being deleted. Mark variable as true to cover case where delete + //has come while RunL was running and "AccountEventNotify" was called and + //has not completed. + iObjectDeleted = ETrue; __LOG_DESTRUCT } // end destructor @@ -233,9 +239,15 @@ eventPtr++; } - // Get the next event(s). - iSession.GetEvents( iStatus, iEventBuffer ); - SetActive(); + //check that "this" object was not deleted by client during "AccountEventNotify". + //If object has been deleted there is no need to get session events and activate itself. + if ( !iObjectDeleted ) + { + // Get the next event(s). + iSession.GetEvents(iStatus, iEventBuffer); + SetActive(); + } + } else { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmailagent/inc/nmmailagent.h --- a/emailservices/nmailagent/inc/nmmailagent.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmailagent/inc/nmmailagent.h Tue Jun 29 17:12:28 2010 +0300 @@ -26,7 +26,8 @@ class NmDataPluginInterface; class HbIndicator; class XQSystemToneService; - +class XQSettingsManager; +class XQSettingsKey; class NmMailboxInfo { @@ -86,6 +87,8 @@ void indicatorActivated(const QString &type, const QVariantMap &data); + void valueChanged(const XQSettingsKey& key, const QVariant& value); + private: void initMailboxStatus(); @@ -146,6 +149,8 @@ bool mAlertToneAllowed; int mLastOutboxCount; bool mUnreadIndicatorActive; + XQSettingsManager *mSettingManager; + int mSilenceMode; }; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmailagent/src/nmmailagent.cpp --- a/emailservices/nmailagent/src/nmmailagent.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmailagent/src/nmmailagent.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -26,6 +26,8 @@ #include #include #include +#include +#include // CONSTS const int NmAgentIndicatorNotSet = -1; @@ -35,6 +37,23 @@ static const QString NmMailboxIndicatorType = "com.nokia.nmail.indicatorplugin_%1/1.0"; static const QString NmSendIndicatorName = "com.nokia.nmail.indicatorplugin.send/1.0"; static const QString NmUnreadIndicatorName = "com.nokia.nmail.indicatorplugin.unread/1.0"; +const XQCentralRepositorySettingsKey NmSilenceModeKey(KCRUidProfileEngine.iUid, KProEngSilenceMode); +const int NmSilenceModeOn = 1; + +/*! + Helper method for finding out if XQSettingsKey and XQCentralRepositorySettingsKey points to + same key. + + @param settingKey XQSettingsKey + @param cenrepSettingKey XQCentralRepositorySettingsKey + @return true if target, uid and key matches otherwise returns false +*/ +bool keysEqual(const XQSettingsKey& settingKey, const XQCentralRepositorySettingsKey& cenrepSettingKey) +{ + return ((settingKey.target() == cenrepSettingKey.target()) && + (settingKey.uid() == cenrepSettingKey.uid()) && + (settingKey.key() == cenrepSettingKey.key())); +} /*! @@ -68,7 +87,9 @@ mVibra(NULL), mAlertToneAllowed(true), mLastOutboxCount(0), - mUnreadIndicatorActive(false) + mUnreadIndicatorActive(false), + mSettingManager(NULL), + mSilenceMode(NmSilenceModeOn) // by default silent mode is on { NM_FUNCTION; } @@ -99,8 +120,34 @@ return false; } + // Check status of silent mode. + delete mSettingManager; + mSettingManager = NULL; + mSettingManager = new XQSettingsManager(); + QVariant silenceMode = mSettingManager->readItemValue(NmSilenceModeKey, + XQSettingsManager::TypeInt); + mSilenceMode = silenceMode.toInt(); + + // Start monitoring silence mode key. + bool monitoring(mSettingManager->startMonitoring(NmSilenceModeKey, XQSettingsManager::TypeInt)); + monitoring &= connect(mSettingManager, + SIGNAL(valueChanged(const XQSettingsKey&, const QVariant&)), + this, + SLOT(valueChanged(const XQSettingsKey&, const QVariant&)), + Qt::UniqueConnection); + + // If silence mode monitoring can't be started, then change silence mode on to be sure + // that no tone is played if silence mode is turned on at somepoint. + if (!monitoring) { + mSilenceMode = NmSilenceModeOn; + } + + delete mSystemTone; + mSystemTone = NULL; mSystemTone = new XQSystemToneService(); + delete mIndicator; + mIndicator = NULL; mIndicator = new HbIndicator(); connect(mIndicator,SIGNAL(userActivated(const QString &, const QVariantMap&)), this, SLOT(indicatorActivated(const QString&, const QVariantMap&))); @@ -131,6 +178,8 @@ } // Construct the vibra interface instance. + delete mVibra; + mVibra = NULL; TRAP_IGNORE(mVibra = CHWRMVibra::NewL()); // load all current mailboxes @@ -145,7 +194,10 @@ delete mVibra; delete mSystemTone; - + if (mSettingManager) { + mSettingManager->stopMonitoring(NmSilenceModeKey); + delete mSettingManager; + } qDeleteAll(mMailboxes); NmDataPluginFactory::releaseInstance(mPluginFactory); @@ -296,6 +348,8 @@ */ int NmMailAgent::getTotalUnreadCount() const { + NM_FUNCTION; + int unreads = 0; foreach (const NmMailboxInfo *mailbox, mMailboxes) { if (mailbox->mActive && mailbox->mInboxActive) { @@ -311,6 +365,8 @@ */ bool NmMailAgent::updateUnreadIndicator() { + NM_FUNCTION; + int unreads = getTotalUnreadCount(); return updateUnreadIndicator(unreads>0); } @@ -403,8 +459,8 @@ bool NmMailAgent::updateUnreadIndicator(bool active) { NM_FUNCTION; + bool activated = false; - if (active != mUnreadIndicatorActive) { if (active) { mIndicator->activate(NmUnreadIndicatorName); @@ -530,6 +586,8 @@ */ NmMailboxInfo *NmMailAgent::getMailboxByType(const QString &type) { + NM_FUNCTION; + foreach (NmMailboxInfo *mailbox, mMailboxes) { // mailbox is shown in indicators if (mailbox->mIndicatorIndex >= 0 && mailbox->mActive) { @@ -567,6 +625,22 @@ } /*! + Called when cenrep key value has been changed. + - only silence mode key handled + + @param key changed key + @param value value for a key. +*/ +void NmMailAgent::valueChanged(const XQSettingsKey& key, const QVariant& value) +{ + NM_FUNCTION; + + if(keysEqual(key, NmSilenceModeKey)) { + mSilenceMode = value.toInt(); + } +} + +/*! Received from NmFrameworkAdapter messageEvent signal \sa NmFrameworkAdapter */ @@ -577,6 +651,7 @@ const NmId& mailboxId) { NM_FUNCTION; + NM_COMMENT(QString("NmMailAgent::handleMessageEvent(): event=%1, id=%2"). arg(event).arg(mailboxId.id())); @@ -919,10 +994,12 @@ bool NmMailAgent::playAlertTone() { NM_FUNCTION; - bool played = false; + bool played(false); if (mAlertToneAllowed) { - if (mSystemTone) { + // Play tone only if system tone service is available and + // phone is not in silence mode. + if (mSystemTone && !mSilenceMode) { mSystemTone->playTone(XQSystemToneService::EmailAlertTone); } @@ -955,6 +1032,8 @@ */ void NmMailAgent::updateSendIndicator() { + NM_FUNCTION; + // Get number of mails in outboxes int outboxMails = 0; foreach (NmMailboxInfo *mailboxInfo, mMailboxes) { @@ -981,16 +1060,19 @@ */ void NmMailAgent::storeMailboxActive(const NmId &mailboxId, bool active) { - XQCentralRepositorySettingsKey key(NmRepositoryId, mailboxId.id()); - XQSettingsManager mgr; - XQCentralRepositoryUtils utils(mgr); + NM_FUNCTION; + + if (mSettingManager) { + XQCentralRepositorySettingsKey key(NmRepositoryId, mailboxId.id()); + XQCentralRepositoryUtils utils(*mSettingManager); - if (active) { - // when mailbox is active, key can be deleted - utils.deleteKey(key); - } - else { - utils.createKey(key,(int)active); + if (active) { + // when mailbox is active, key can be deleted + utils.deleteKey(key); + } + else { + utils.createKey(key,(int)active); + } } } @@ -1001,16 +1083,18 @@ */ bool NmMailAgent::isMailboxActive(const NmId &mailboxId) { - XQCentralRepositorySettingsKey key(NmRepositoryId, mailboxId.id()); - XQSettingsManager mgr; - QVariant value = mgr.readItemValue(key,XQSettingsManager::TypeInt); - if (!value.isValid()) { - // no valid value found, key missing? - NM_COMMENT("NmMailAgent::isMailboxActive - value not valid"); - return true; + NM_FUNCTION; + + bool mailboxActive(true); + if (mSettingManager) { + XQCentralRepositorySettingsKey key(NmRepositoryId, mailboxId.id()); + QVariant value = mSettingManager->readItemValue(key, XQSettingsManager::TypeInt); + if (value.isValid()) { + NM_COMMENT(QString("NmMailAgent::isMailboxActive - value=%1").arg(value.toInt())); + mailboxActive = value.toInt(); + } } - NM_COMMENT(QString("NmMailAgent::isMailboxActive - value=%1").arg(value.toInt())); - return value.toInt(); + return mailboxActive; } /*! @@ -1019,9 +1103,10 @@ */ void NmMailAgent::deleteStoredMailboxActivity(const NmId &mailboxId) { + NM_FUNCTION; + // deactivation delete the key too storeMailboxActive(mailboxId,false); } // End of file - diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/inc/nmapicommonheader.h --- a/emailservices/nmclientapi/inc/nmapicommonheader.h Thu Jun 24 14:32:18 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +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: - * - */ - -#ifndef NMAPICOMMONHEADER_H -#define NMAPICOMMONHEADER_H - -#include -#include -#include -#include -#include -#include - -#endif /* NMAPICOMMONHEADER_H */ diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/inc/nmapifolder_p.h --- a/emailservices/nmclientapi/inc/nmapifolder_p.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/inc/nmapifolder_p.h Tue Jun 29 17:12:28 2010 +0300 @@ -15,8 +15,8 @@ * */ -#ifndef NMAPIMAILBOX_P_H -#define NMAPIMAILBOX_P_H +#ifndef NMAPIFOLDER_P_H +#define NMAPIFOLDER_P_H #include @@ -45,4 +45,4 @@ } -#endif /* NMAPIMAILBOX_P_H_ */ +#endif /* NMAPIFOLDER_P_H */ diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/inc/nmapiheaders.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/inc/nmapiheaders.h Tue Jun 29 17:12:28 2010 +0300 @@ -0,0 +1,102 @@ +/* +* 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: +* +*/ + +#ifndef NMAPIHEADERS_H +#define NMAPIHEADERS_H + +// Qt +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + + +#include + +#include + +#include + +#include +#include +#include +#include +#include + +#include + +#include + + + +// nmail_settings_api +#include +#include + +// nmail_client_api +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +// own headers +#include "nmapidatapluginfactory.h" +#include "nmapiemailaddress_p.h" +#include "nmapiengine.h" +#include "nmapienvelopelisting_p.h" +#include "nmapieventnotifier_p.h" +#include "nmapifolder_p.h" +#include "nmapifolderlisting_p.h" +#include "nmapimailbox_p.h" +#include "nmapimailboxlisting_p.h" +#include "nmapimailboxsettings_p.h" +#include "nmapimailboxsettingsdata_p.h" +#include "nmapimessagebody_p.h" +#include "nmapimessageenvelope_p.h" +#include "nmapimessagemanager_p.h" +#include "nmapipopimapsettingsmanager.h" +#include "nmapiprivateclasses.h" +#include "nmapitypesconverter.h" + + +#endif // NMAPIHEADERS_H diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/inc/nmapimailbox_p.h --- a/emailservices/nmclientapi/inc/nmapimailbox_p.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/inc/nmapimailbox_p.h Tue Jun 29 17:12:28 2010 +0300 @@ -18,8 +18,7 @@ #ifndef NMAPIMAILBOX_P_H #define NMAPIMAILBOX_P_H -#include - +#include namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/inc/nmapiprivateheaders.h --- a/emailservices/nmclientapi/inc/nmapiprivateheaders.h Thu Jun 24 14:32:18 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +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: -* -*/ - -#ifndef NMAPIPRIVATEHEADERS_H -#define NMAPIPRIVATEHEADERS_H - -#include "nmmailbox.h" -#include "nmmessage.h" -#include "nmfolder.h" -#include "nmmessagepart.h" - -#endif // NMAPIPRIVATEHEADERS_H diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/nmclientapi.pro --- a/emailservices/nmclientapi/nmclientapi.pro Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/nmclientapi.pro Tue Jun 29 17:12:28 2010 +0300 @@ -26,88 +26,77 @@ INCLUDEPATH += inc \ ../../email_plat/nmail_client_api \ - ../../inc + ../../email_plat/nmail_settings_api \ + ../../inc -DEPENDPATH += src \ - inc \ - ../../email_plat/nmail_client_api \ - ../../inc +DEPENDPATH += ../../email_plat/nmail_client_api \ + ../../email_plat/nmail_settings_api \ + MOC_DIR = tmp - -#headers and sources outside api -HEADERS += nmapiprivateheaders.h \ - nmapitypesconverter.h \ - nmapiprivateclasses.h \ - nmdataplugininterface.h \ - nmapidatapluginfactory.h \ - nmapiengine.h \ - nmmessagepart.h \ - nmapicommon.h \ - nmapimessagemanager.h \ - nmoperation.h - -#headers and sources from api -SOURCES += nmapitypesconverter.cpp \ - nmapidatapluginfactory.cpp \ - nmapiemailservice.cpp \ - nmapiengine.cpp +# public headers +HEADERS += nmapicommon.h \ + nmapidef.h \ + nmapiemailaddress.h \ + nmapiemailservice.h \ + nmapienvelopelisting.h \ + nmapieventnotifier.h \ + nmapifolder.h \ + nmapifolderlisting.h \ + nmapimailbox.h \ + nmapimailboxlisting.h \ + nmapimessagebody.h \ + nmapimessageenvelope.h \ + nmapimessagetask.h \ + nmapimessagemanager.h \ + nmapimailboxsettings.h -HEADERS += nmapicommonheader.h \ - nmapiemailservice.h \ - nmapimessagetask.h \ - nmapimailboxlisting_p.h \ - nmapimailboxlisting.h \ - nmapifolderlisting_p.h \ - nmapifolderlisting.h \ - nmapienvelopelisting_p.h \ - nmapienvelopelisting.h \ - nmapiemailaddress_p.h \ - nmapiemailaddress.h \ - nmapieventnotifier_p.h \ - nmapieventnotifier.h \ - nmapifolder_p.h \ - nmapifolder.h \ - nmapimailbox_p.h \ - nmapimailbox.h \ - nmapimessagebody_p.h \ - nmapimessagebody.h \ - nmapimessageenvelope_p.h \ - nmapimessageenvelope.h \ - nmapimailboxsettingsdata_p.h \ - nmapimailboxsettingsdata.h \ - ../inc/nmapimailboxsettings_p.h \ - ../../email_plat/nmail_settings_api/nmapimailboxsettings.h \ - ../inc/nmapipopimapsettingsmanager.h \ - ../inc/nmapimessagemanager_p.h - -LIBS += -leuser -LIBS += -llibc - - -SOURCES += nmapimessagetask.cpp \ - nmapimailboxlisting_p.cpp \ - nmapimailboxlisting.cpp \ - nmapifolderlisting_p.cpp \ - nmapifolderlisting.cpp \ - nmapienvelopelisting_p.cpp \ - nmapienvelopelisting.cpp \ - nmapiemailaddress.cpp \ - nmapieventnotifier_p.cpp \ - nmapieventnotifier.cpp \ - nmapifolder.cpp \ - nmapimailbox.cpp \ - nmapimessagebody.cpp \ - nmapimessageenvelope.cpp \ - nmapimailboxsettingsdata_p.cpp \ - nmapimailboxsettingsdata.cpp \ - ../src/nmapimailboxsettings_p.cpp \ - ../src/nmapimailboxsettings.cpp \ - nmapipopimapsettingsmanager.cpp \ - ../src/nmapimessagemanager_p.cpp \ - ../src/nmapimessagemanager.cpp - +# private headers +HEADERS += inc/nmapidatapluginfactory.h \ + inc/nmapiemailaddress_p.h \ + inc/nmapiengine.h \ + inc/nmapienvelopelisting_p.h \ + inc/nmapieventnotifier_p.h \ + inc/nmapifolder_p.h \ + inc/nmapifolderlisting_p.h \ + inc/nmapimailbox_p.h \ + inc/nmapimailboxlisting_p.h \ + inc/nmapimailboxsettings_p.h \ + inc/nmapimailboxsettingsdata_p.h \ + inc/nmapimessagebody_p.h \ + inc/nmapimessageenvelope_p.h \ + inc/nmapimessagemanager_p.h \ + inc/nmapipopimapsettingsmanager.h \ + inc/nmapiprivateclasses.h \ + inc/nmapitypesconverter.h \ + inc/nmapiheaders.h + +SOURCES += src/nmapidatapluginfactory.cpp \ + src/nmapiemailaddress.cpp \ + src/nmapiemailservice.cpp \ + src/nmapiengine.cpp \ + src/nmapienvelopelisting_p.cpp \ + src/nmapienvelopelisting.cpp \ + src/nmapieventnotifier_p.cpp \ + src/nmapieventnotifier.cpp \ + src/nmapifolder.cpp \ + src/nmapifolderlisting_p.cpp \ + src/nmapifolderlisting.cpp \ + src/nmapimailbox.cpp \ + src/nmapimailboxlisting_p.cpp \ + src/nmapimailboxlisting.cpp \ + src/nmapimessagetask.cpp \ + src/nmapimailboxsettingsdata_p.cpp \ + src/nmapimailboxsettingsdata.cpp \ + src/nmapimailboxsettings_p.cpp \ + src/nmapimailboxsettings.cpp \ + src/nmapimessagebody.cpp \ + src/nmapimessageenvelope.cpp \ + src/nmapipopimapsettingsmanager.cpp \ + src/nmapimessagemanager_p.cpp \ + src/nmapimessagemanager.cpp \ + src/nmapitypesconverter.cpp @@ -120,7 +109,6 @@ TARGET.UID3 = 0x2002C366 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE - DEPENDPATH += $$APP_LAYER_SYSTEMINCLUDE LIBS += -lnmailbase \ @@ -144,10 +132,3 @@ } -win32 { - DESTDIR = ../../bin - OBJECTS_DIR = tmp -} - - - diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapidatapluginfactory.cpp --- a/emailservices/nmclientapi/src/nmapidatapluginfactory.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapidatapluginfactory.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,25 +15,9 @@ * */ -#include "emailtrace.h" - -#include "nmdataplugininterface.h" -#include "nmapidatapluginfactory.h" +#include "nmapiheaders.h" -// Qt -#include -#include -#include -#include -#include -// nmailbase -#include "nmcommon.h" -#include "nmmailbox.h" -#include "nmmessageenvelope.h" -#include "nmmessage.h" -#include "nmmessagepart.h" -#include "nmfolder.h" /*! \class NmApiDataPluginFactory diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapiemailaddress.cpp --- a/emailservices/nmclientapi/src/nmapiemailaddress.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapiemailaddress.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,10 +15,8 @@ * */ -#include "emailtrace.h" +#include "nmapiheaders.h" -#include -#include "nmapiemailaddress_p.h" namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapiemailservice.cpp --- a/emailservices/nmclientapi/src/nmapiemailservice.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapiemailservice.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,13 +15,8 @@ * */ -#include "emailtrace.h" +#include "nmapiheaders.h" -#include -#include "nmapiengine.h" - -#include -#include namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapiengine.cpp --- a/emailservices/nmclientapi/src/nmapiengine.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapiengine.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,19 +15,8 @@ * */ -#include "emailtrace.h" - -#include +#include "nmapiheaders.h" -#include "nmapitypesconverter.h" -#include "nmdataplugininterface.h" -#include "nmapidatapluginfactory.h" -#include "nmapiengine.h" - -/*! - from nmailbase -*/ -#include "nmapiprivateheaders.h" NmApiEngine *NmApiEngine::mInstance = NULL; quint32 NmApiEngine::mReferenceCount = 0; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapienvelopelisting.cpp --- a/emailservices/nmclientapi/src/nmapienvelopelisting.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapienvelopelisting.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -14,17 +14,8 @@ * Description: * */ - -#include "emailtrace.h" - -#include -#include "nmapienvelopelisting_p.h" - -#include - -#include "nmapiengine.h" - - + +#include "nmapiheaders.h" namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapienvelopelisting_p.cpp --- a/emailservices/nmclientapi/src/nmapienvelopelisting_p.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapienvelopelisting_p.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,13 +15,7 @@ * */ -#include "emailtrace.h" - -#include "nmapiengine.h" -#include "nmapienvelopelisting_p.h" - -#include -#include +#include "nmapiheaders.h" diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapieventnotifier.cpp --- a/emailservices/nmclientapi/src/nmapieventnotifier.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapieventnotifier.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,16 +15,8 @@ * */ -#include "emailtrace.h" +#include "nmapiheaders.h" -#include -#include -#include -#include - -#include "nmapiengine.h" -#include -#include "nmapieventnotifier_p.h" const quint32 IntervalEmitingSignals = 10000; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapieventnotifier_p.cpp --- a/emailservices/nmclientapi/src/nmapieventnotifier_p.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapieventnotifier_p.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,12 +15,7 @@ * */ -#include "emailtrace.h" - -#include "nmapiengine.h" -#include "nmapieventnotifier_p.h" - -#include +#include "nmapiheaders.h" namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapifolder.cpp --- a/emailservices/nmclientapi/src/nmapifolder.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapifolder.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -14,11 +14,9 @@ * Description: * */ - -#include "emailtrace.h" + +#include "nmapiheaders.h" -#include -#include "nmapifolder_p.h" namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapifolderlisting.cpp --- a/emailservices/nmclientapi/src/nmapifolderlisting.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapifolderlisting.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,13 +15,8 @@ * */ -#include "emailtrace.h" +#include "nmapiheaders.h" -#include -#include "nmapifolderlisting_p.h" - -#include -#include namespace EmailClientApi { @@ -145,4 +140,4 @@ } -#include "moc_nmapifolderlisting.cpp" + diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapifolderlisting_p.cpp --- a/emailservices/nmclientapi/src/nmapifolderlisting_p.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapifolderlisting_p.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,12 +15,8 @@ * */ -#include "emailtrace.h" +#include "nmapiheaders.h" -#include "nmapiengine.h" -#include "nmapifolderlisting_p.h" - -#include namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimailbox.cpp --- a/emailservices/nmclientapi/src/nmapimailbox.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimailbox.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,12 +15,7 @@ * */ -#include "emailtrace.h" - -#include -#include "nmapimailbox_p.h" - -#include +#include "nmapiheaders.h" namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimailboxlisting.cpp --- a/emailservices/nmclientapi/src/nmapimailboxlisting.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimailboxlisting.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,16 +15,7 @@ * */ -#include "emailtrace.h" - -#include - -#include - -#include -#include "nmapiengine.h" -#include "nmapimailboxlisting_p.h" - +#include "nmapiheaders.h" namespace EmailClientApi { @@ -169,4 +160,3 @@ } -#include "moc_nmapimailboxlisting.cpp" diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimailboxlisting_p.cpp --- a/emailservices/nmclientapi/src/nmapimailboxlisting_p.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimailboxlisting_p.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,12 +15,8 @@ * */ -#include "emailtrace.h" +#include "nmapiheaders.h" -#include "nmapiengine.h" -#include "nmapimailboxlisting_p.h" - -#include namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimailboxsettings.cpp --- a/emailservices/nmclientapi/src/nmapimailboxsettings.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimailboxsettings.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -14,9 +14,9 @@ * Description: * */ -#include -#include "nmapimailboxsettings_p.h" -#include + +#include "nmapiheaders.h" + namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimailboxsettings_p.cpp --- a/emailservices/nmclientapi/src/nmapimailboxsettings_p.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimailboxsettings_p.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,20 +15,8 @@ * */ -#include "nmapimailboxsettings_p.h" - -#include "nmdataplugininterface.h" -#include "nmapidatapluginfactory.h" -//#include "nmapipopimapsettingsmanager.h" -#include "emailtrace.h" +#include "nmapiheaders.h" -#include -#include - -#include -#include -#include -#include namespace EmailClientApi { @@ -93,7 +81,8 @@ NmApiMailboxSettingsData &data) { NM_FUNCTION; - + Q_UNUSED(mailboxType); + Q_UNUSED(data); bool ret = false; /*QT_TRY { @@ -140,6 +129,8 @@ const QString &mailboxType, NmApiMailboxSettingsData &data) { NM_FUNCTION; + Q_UNUSED(mailboxType); + Q_UNUSED(data); /*QScopedPointer popImapManager(new NmApiPopImapSettingsManager()); return popImapManager->populateDefaults(mailboxType, data);*/ return true; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimailboxsettingsdata.cpp --- a/emailservices/nmclientapi/src/nmapimailboxsettingsdata.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimailboxsettingsdata.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -14,8 +14,9 @@ * Description: * */ -#include -#include "NmApiMailboxSettingsData_p.h" + +#include "nmapiheaders.h" + namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimailboxsettingsdata_p.cpp --- a/emailservices/nmclientapi/src/nmapimailboxsettingsdata_p.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimailboxsettingsdata_p.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,14 +15,10 @@ * */ -#include "nmapimailboxsettingsdata_p.h" +#include "nmapiheaders.h" -#include -#include -#include -#include -#include -#include "emailtrace.h" + + namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimessagebody.cpp --- a/emailservices/nmclientapi/src/nmapimessagebody.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimessagebody.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -14,11 +14,9 @@ * Description: * */ - -#include "emailtrace.h" + +#include "nmapiheaders.h" -#include -#include "nmapimessagebody_p.h" namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimessageenvelope.cpp --- a/emailservices/nmclientapi/src/nmapimessageenvelope.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimessageenvelope.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,16 +15,9 @@ * */ -#include "emailtrace.h" - -#include -#include +#include "nmapiheaders.h" -#include -#include "nmapimessageenvelope_p.h" -#include -#include namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimessagemanager.cpp --- a/emailservices/nmclientapi/src/nmapimessagemanager.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimessagemanager.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -14,10 +14,8 @@ * Description: * Email message related operations */ -#include -#include -#include -#include "nmapimessagemanager_p.h" + +#include "nmapiheaders.h" /*! diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimessagemanager_p.cpp --- a/emailservices/nmclientapi/src/nmapimessagemanager_p.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimessagemanager_p.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -14,14 +14,9 @@ * Description: * Email message related operations */ + +#include "nmapiheaders.h" -#include -#include -#include -#include -#include -#include "nmapimessagemanager_p.h" -#include "emailtrace.h" namespace EmailClientApi { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapimessagetask.cpp --- a/emailservices/nmclientapi/src/nmapimessagetask.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimessagetask.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,9 +15,9 @@ * */ -#include "emailtrace.h" +#include "nmapiheaders.h" -#include + /*! Constructor for NmApiMessageTask diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapipopimapsettingsmanager.cpp --- a/emailservices/nmclientapi/src/nmapipopimapsettingsmanager.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapipopimapsettingsmanager.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,13 +15,9 @@ * */ -#include "nmapipopimapsettingsmanager.h" +#include "nmapiheaders.h" -#include -#include -#include -#include -#include + static const int DefaultPopPort = 110; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailservices/nmclientapi/src/nmapitypesconverter.cpp --- a/emailservices/nmclientapi/src/nmapitypesconverter.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapitypesconverter.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -15,13 +15,7 @@ * */ -#include "emailtrace.h" - -#include "nmapitypesconverter.h" - -#include - -#include +#include "nmapiheaders.h" /*! converts nmmailbox to client api NmApiMailbox diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/conf/nmeditorview.docml --- a/emailuis/nmailui/conf/nmeditorview.docml Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/conf/nmeditorview.docml Tue Jun 29 17:12:28 2010 +0300 @@ -4,138 +4,128 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + - - - - - - - + + + + + + + + + diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/conf/nmmessagelistview.docml --- a/emailuis/nmailui/conf/nmmessagelistview.docml Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/conf/nmmessagelistview.docml Tue Jun 29 17:12:28 2010 +0300 @@ -3,30 +3,18 @@ - - - - - - - - - - - - @@ -39,9 +27,6 @@ - - - diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/inc/nmeditorcontent.h --- a/emailuis/nmailui/inc/nmeditorcontent.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/inc/nmeditorcontent.h Tue Jun 29 17:12:28 2010 +0300 @@ -46,9 +46,11 @@ void setMessageData(const NmMessage &originalMessage, NmUiEditorStartMode &editorStartMode); + NmEditorTextEdit* editor() const; + NmEditorHeader* header() const; - + private: void createConnections(); void removeEmbeddedImages(QString &bodyContent); @@ -60,14 +62,13 @@ public slots: void setEditorContentHeight(); - void setScrollPosition(int oldPos, int newPos); - void updateScrollPosition(const QPointF &newPosition); + void ensureCursorVisibility(); private: enum MessageBodyType { NmPlainText, NmHTMLText }; private: - NmEditorHeader *mHeaderWidget; // Not owned + NmEditorHeader *mHeader; // Not owned MessageBodyType mMessageBodyType; NmEditorTextEdit *mEditorWidget; // Not owned NmBaseViewScrollArea *mScrollArea; // Not owned diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/inc/nmeditorview.h --- a/emailuis/nmailui/inc/nmeditorview.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/inc/nmeditorview.h Tue Jun 29 17:12:28 2010 +0300 @@ -81,6 +81,9 @@ void okToExitQuery(HbAction* action); void sendProgressDialogCancelled(); +protected: + void resizeEvent(QGraphicsSceneResizeEvent *event); + private slots: void messageCreated(int result); void oneAttachmentAdded(const QString &fileName, @@ -118,16 +121,18 @@ void enableToolBarAttach(bool enable); void showChrome(bool show); +signals: + void sizeChanged(); + private: // Data NmApplication &mApplication; NmUiEngine &mUiEngine; NmAttachmentManager &mAttaManager; HbDocumentLoader *mDocumentLoader; // Owned QObjectList mWidgetList; // Owned - NmEditorTextEdit *mEditWidget; // Not owned NmEditorHeader *mHeaderWidget; // Not owned NmMessage *mMessage; // Owned - NmEditorContent *mContentWidget; // Owned + NmEditorContent *mContent; // Not owned HbMenu *mPrioritySubMenu; // Owned HbMenu *mAttachmentListContextMenu; // Owned NmId mSelectedAttachment; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/inc/nmuiheaders.h --- a/emailuis/nmailui/inc/nmuiheaders.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/inc/nmuiheaders.h Tue Jun 29 17:12:28 2010 +0300 @@ -91,6 +91,7 @@ #include #include #include +#include #include #include diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/inc/nmviewerview.h --- a/emailuis/nmailui/inc/nmviewerview.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/inc/nmviewerview.h Tue Jun 29 17:12:28 2010 +0300 @@ -24,7 +24,6 @@ #include "nmactionobserver.h" #include "nmattachmentfetchobserver.h" -class QGraphicsLinearLayout; class QWebPage; class HbWidget; @@ -45,6 +44,7 @@ class NmAttachmentListWidget; class NmAttachmentManager; class HbMessageBox; +class NmMessagePart; class NmViewerView : public NmBaseView, public NmActionObserver, public NmAttachmentFetchObserver { @@ -55,8 +55,8 @@ NmUiStartParam* startParam, NmUiEngine &uiEngine, HbMainWindow *mainWindow, - NmAttachmentManager &attaManager, - bool toolbar = false, + NmAttachmentManager &attaManager, + bool toolbar = false, QGraphicsItem *parent = NULL); ~NmViewerView(); void reloadViewContents(NmUiStartParam* startParam); @@ -99,6 +99,8 @@ void loadMessage(); void loadViewLayout(); QString formatMessage(); + QString formatHtmlMessage(NmMessagePart *html); + QString formatPlainTextMessage(NmMessagePart *plain); bool eventOnTopOfHeaderArea(QGraphicsSceneMouseEvent *event); void changeMessageReadStatus(bool read); void setMailboxName(); @@ -123,9 +125,8 @@ QPointF mLatestScrollPos; bool mDisplayingPlainText; QObjectList mWidgetList; - NmUiDocumentLoader *mDocumentLoader; - HbWidget *mScrollAreaContents; - HbWidget *mViewerHeaderContainer; + NmUiDocumentLoader *mDocumentLoader; // Owned + HbWidget *mScrollAreaContents; // Not owned QSize mScreenSize; HbProgressDialog *mWaitDialog; // Owned bool webFrameloadingCompleted; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/inc/nmviewerviewnetreply.h --- a/emailuis/nmailui/inc/nmviewerviewnetreply.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/inc/nmviewerviewnetreply.h Tue Jun 29 17:12:28 2010 +0300 @@ -54,7 +54,7 @@ NmId mFolderId; NmId mMessageId; NmId mMessagePartId; - NmOperation *mOperation; + NmOperation *mOperation; // Not owned qint64 mReadIndex; }; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/inc/nmviewerwebview.h --- a/emailuis/nmailui/inc/nmviewerwebview.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/inc/nmviewerwebview.h Tue Jun 29 17:12:28 2010 +0300 @@ -45,20 +45,18 @@ NmMailViewerWK(); ~NmMailViewerWK(); virtual QVariant loadResource (int type, const QUrl &name, NmId &partId, bool &isFetched); - void setParentView(NmViewerView *parentView); void addContent(QString key, QVariant val, NmId partId, bool isFetched); - virtual bool event(QEvent* event); + bool event(QEvent* event); protected: - virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent* event); - virtual void gestureEvent(QGestureEvent* event); - virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event); - virtual void mouseMoveEvent(QGraphicsSceneMouseEvent* event); - virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent* event); + void contextMenuEvent(QGraphicsSceneContextMenuEvent* event); + void gestureEvent(QGestureEvent* event); + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event); + void mouseMoveEvent(QGraphicsSceneMouseEvent* event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent* event); private: QMap mContent; - NmViewerView *mParentView; // Not owned bool mSuppressRelease; }; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/nmailui.pro --- a/emailuis/nmailui/nmailui.pro Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/nmailui.pro Tue Jun 29 17:12:28 2010 +0300 @@ -11,7 +11,6 @@ CONFIG += debug CONFIG += hb CONFIG += service -CONFIG += no_icon SERVICE.FILE = service_conf.xml diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/src/nmeditorcontent.cpp --- a/emailuis/nmailui/src/nmeditorcontent.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/src/nmeditorcontent.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -24,7 +24,7 @@ // Regular expression for selecting img tags with "cid" in the mail. static const char *NMUI_EDITOR_REMOVE_EMBD_IMAGES_REG = - "(\\s*|/>\\s*|>\\s*))"; + "(\\s*|/>\\s*|>\\s*))"; /*! Constructor @@ -34,7 +34,7 @@ QNetworkAccessManager &manager, NmApplication &application) : QObject(parent), - mHeaderWidget(NULL), + mHeader(NULL), mMessageBodyType(NmPlainText), mEditorWidget(NULL), mScrollArea(NULL), @@ -44,7 +44,7 @@ NM_FUNCTION; // Construct container for the header widgets - mHeaderWidget = new NmEditorHeader(this, documentLoader); + mHeader = new NmEditorHeader(this, documentLoader); // Get pointer to body text area handling widget mEditorWidget = qobject_cast(documentLoader->findWidget(NMUI_EDITOR_BODY)); @@ -56,7 +56,8 @@ mScrollArea = qobject_cast (documentLoader->findObject(NMUI_EDITOR_SCROLL_AREA)); - + mScrollArea->setScrollDirections(Qt::Vertical | Qt::Horizontal); + // Enable style picker menu item. mEditorWidget->setFormatDialog(new HbFormatDialog()); @@ -129,21 +130,28 @@ mEditorWidget, SLOT(setPlainText(QString)), Qt::QueuedConnection); // Inform text edit widget that header height has been changed - connect(mHeaderWidget, SIGNAL(headerHeightChanged(int)), this, SLOT(setEditorContentHeight()), + connect(mHeader, SIGNAL(headerHeightChanged(int)), this, SLOT(setEditorContentHeight()), Qt::QueuedConnection); // we are interested in the document's height changes connect(mEditorWidget->document()->documentLayout(), SIGNAL(documentSizeChanged(QSizeF)), this, SLOT(setEditorContentHeight()), Qt::QueuedConnection); - // We need to update the scroll position according the editor cursor position + // We need to update the scroll position according the editor's cursor position + connect(mHeader->toEdit(), SIGNAL(cursorPositionChanged(int, int)), this, + SLOT(ensureCursorVisibility()), Qt::QueuedConnection); + connect(mHeader->ccEdit(), SIGNAL(cursorPositionChanged(int, int)), this, + SLOT(ensureCursorVisibility()), Qt::QueuedConnection); + connect(mHeader->bccEdit(), SIGNAL(cursorPositionChanged(int, int)), this, + SLOT(ensureCursorVisibility()), Qt::QueuedConnection); + connect(mHeader->subjectEdit(), SIGNAL(cursorPositionChanged(int, int)), this, + SLOT(ensureCursorVisibility()), Qt::QueuedConnection); connect(mEditorWidget, SIGNAL(cursorPositionChanged(int, int)), this, - SLOT(setScrollPosition(int, int)), Qt::QueuedConnection); - - // We need to know the scroll area's current position for calculating the new position in - // setScrollPosition - connect(mScrollArea, SIGNAL(scrollPositionChanged(QPointF)), this, - SLOT(updateScrollPosition(QPointF)), Qt::QueuedConnection); + SLOT(ensureCursorVisibility()), Qt::QueuedConnection); + + // listen to the parent's (NmEditorView) size changes which happen eg. when VKB is opened/closed + connect(parent(), SIGNAL(sizeChanged()), this, SLOT(ensureCursorVisibility()), + Qt::QueuedConnection); } /*! @@ -163,7 +171,7 @@ { NM_FUNCTION; - return mHeaderWidget; + return mHeader; } /*! @@ -174,23 +182,21 @@ { NM_FUNCTION; + // the height of the margin between the title bar and the header qreal topMargin = 0; HbStyle().parameter("hb-param-margin-gene-top", topMargin); // header height - qreal headerHeight = mHeaderWidget->headerHeight(); + qreal headerHeight = mHeader->headerHeight(); // body area editor's document height with margins added qreal documentHeightAndMargins = mEditorWidget->document()->size().height() + (mEditorWidget->document()->documentMargin() * 2); - // get the chrome height + // chrome height qreal chromeHeight = 0; HbStyle().parameter("hb-param-widget-chrome-height", chromeHeight); - qreal toolbarHeight = 0; - HbStyle().parameter("hb-param-widget-toolbar-height", toolbarHeight); - // screen height qreal screenHeight = mApplication.screenSize().height(); @@ -203,65 +209,51 @@ } /*! - This slot is called when cursor position is changed in body area using - 'pointing stick' or keyboard. Function will update the scroll position - of the content so that cursor does not go outside of the screen or - behind the virtual keyboard. - */ -void NmEditorContent::setScrollPosition(int oldPos, int newPos) + This slot is called when the cursor visibility has to be ensured ie. the scroll position is + adjusted so that the cursor can be seen. +*/ +void NmEditorContent::ensureCursorVisibility() { NM_FUNCTION; - - Q_UNUSED(oldPos); - - qreal chromeHeight = 0; - HbStyle().parameter("hb-param-widget-chrome-height", chromeHeight); - - const QSizeF screenReso = mApplication.screenSize(); - qreal maxHeight = screenReso.height() - chromeHeight; - - // Get cursor position coordinates - QRectF cursorPosPix = mEditorWidget->rectForPosition(newPos); - - // Calculate the screen top and bottom boundaries, this means the part of the - // background scroll area which is currently visible. - qreal visibleRectTopBoundary; - qreal visibleRectBottomBoundary; - - qreal headerHeight = mHeaderWidget->headerHeight(); - if (mScrollPosition.y() < headerHeight) { - // Header is completely or partially visible - visibleRectTopBoundary = headerHeight - mScrollPosition.y(); - visibleRectBottomBoundary = maxHeight - visibleRectTopBoundary; - } - else { - // Header is not visible - visibleRectTopBoundary = mScrollPosition.y() - headerHeight; - visibleRectBottomBoundary = visibleRectTopBoundary + maxHeight; - } + // check which of the editors has the focus and get the x/y coordinates for the cursor position + QGraphicsWidget *focused = mScrollAreaContents->focusWidget(); + + if (focused) { + QRectF localRect(0, 0, 0, 0); + bool notFound = false; + + if (focused == mHeader->toEdit()) { + localRect = mHeader->toEdit()->rectForCursorPosition(); + } + else if (focused == mHeader->ccEdit()) { + localRect = mHeader->ccEdit()->rectForCursorPosition(); + } + else if (focused == mHeader->bccEdit()) { + localRect = mHeader->bccEdit()->rectForCursorPosition(); + } + else if (focused == mHeader->subjectEdit()) { + localRect = mHeader->subjectEdit()->rectForCursorPosition(); + } + else if (focused == mEditorWidget) { + localRect = mEditorWidget->rectForCursorPosition(); + } + else { + notFound = true; + } - // Do scrolling if cursor is out of the screen boundaries - if (cursorPosPix.y() > visibleRectBottomBoundary) { - // Do scroll forward - mScrollArea->scrollContentsTo(QPointF(0, cursorPosPix.y() - maxHeight + headerHeight)); - } - else if (cursorPosPix.y() + headerHeight < mScrollPosition.y()) { - // Do scroll backward - mScrollArea->scrollContentsTo(QPointF(0, cursorPosPix.y() + headerHeight)); + if (!notFound) { + QPointF topLeftPos = focused->mapToItem(mScrollAreaContents, localRect.topLeft()); + QPointF bottomRightPos = + focused->mapToItem(mScrollAreaContents, localRect.bottomRight()); + qreal marginRight = 0; + HbStyle().parameter("hb-param-margin-gene-right", marginRight); + bottomRightPos.rx() += marginRight; + mScrollArea->ensureVisible(topLeftPos); + mScrollArea->ensureVisible(bottomRightPos); + } } } - -/*! - This slot is called when background scroll areas scroll position has been shanged. -*/ -void NmEditorContent::updateScrollPosition(const QPointF &newPosition) -{ - NM_FUNCTION; - - mScrollPosition = newPosition; -} - /*! Removes embedded images from the message body */ @@ -271,4 +263,4 @@ QRegExp regExp(NMUI_EDITOR_REMOVE_EMBD_IMAGES_REG, Qt::CaseInsensitive); bodyContent.remove(regExp); -} \ No newline at end of file +} diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/src/nmeditorheader.cpp --- a/emailuis/nmailui/src/nmeditorheader.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/src/nmeditorheader.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -19,7 +19,7 @@ // Layout // These match to the defintions in nmeditorview.docml -static const char *NMUI_EDITOR_CONTAINER = "containerContents"; +static const char *NMUI_EDITOR_CONTAINER = "scrollAreaContents"; static const char *NMUI_EDITOR_SUBJECT_FIELD = "editorSubjectField"; static const char *NMUI_EDITOR_SUBJECT_EDIT = "editorSubjectEdit"; static const char *NMUI_EDITOR_CC_FIELD = "editorCcField"; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/src/nmeditorview.cpp --- a/emailuis/nmailui/src/nmeditorview.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/src/nmeditorview.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -41,10 +41,9 @@ mUiEngine(uiEngine), mAttaManager(attaManager), mDocumentLoader(NULL), - mEditWidget(NULL), mHeaderWidget(NULL), mMessage(NULL), - mContentWidget(NULL), + mContent(NULL), mAttachmentListContextMenu(NULL), mMessageCreationOperation(NULL), mAddAttachmentOperation(NULL), @@ -128,12 +127,10 @@ setWidget(view); } - mContentWidget = new NmEditorContent(this, mDocumentLoader, + mContent = new NmEditorContent(this, mDocumentLoader, mApplication.networkAccessManager(), mApplication); - mEditWidget = mContentWidget->editor(); - - mHeaderWidget = mContentWidget->header(); + mHeaderWidget = mContent->header(); // Set default color for user - entered text if editor is in re/reAll/fw mode if (mStartParam) { @@ -141,7 +138,7 @@ if (mode == NmUiEditorReply || mode == NmUiEditorReplyAll || mode == NmUiEditorForward) { - mEditWidget->setCustomTextColor(true, Qt::blue); + mContent->editor()->setCustomTextColor(true, Qt::blue); } } @@ -188,11 +185,7 @@ { NM_FUNCTION; - // If switching to horizontal, chrome must be hided - if (mVkbHost && orientation == Qt::Horizontal && - mVkbHost->keypadStatus() == HbVkbHost::HbVkbStatusOpened) { - showChrome(false); - } + Q_UNUSED(orientation); // content widget height needs to be set according to the new orientation to get the scroll // area work correctly @@ -204,9 +197,7 @@ */ void NmEditorView::vkbOpened() { - if (mApplication.mainWindow()->orientation() == Qt::Horizontal) { - showChrome(false); - } + showChrome(false); } /*! @@ -223,7 +214,7 @@ void NmEditorView::showChrome(bool show) { if (show) { - showItems(Hb::StatusBarItem | Hb::TitleBarItem | Hb::ToolBarItem); + showItems(Hb::StatusBarItem | Hb::TitleBarItem | Hb::ToolBarItem); } else { hideItems(Hb::StatusBarItem | Hb::TitleBarItem | Hb::ToolBarItem); @@ -249,8 +240,8 @@ bool okToExit(true); - if (mContentWidget) { - NmEditorHeader *header = mContentWidget->header(); + if (mContent) { + NmEditorHeader *header = mContent->header(); // show the query if the message has not been sent if (mMessage && header) { // see if editor has any content @@ -262,8 +253,8 @@ QList attachmentList; mMessage->attachmentList(attachmentList); - if (mContentWidget->editor()) { - okToExit = (subjectLength == 0 && mContentWidget->editor()->document()->isEmpty()); + if (mContent->editor()) { + okToExit = (subjectLength == 0 && mContent->editor()->document()->isEmpty()); } // content exists, verify exit from user @@ -361,15 +352,15 @@ NmAction *dummy = new NmAction(0); menu()->addAction(dummy); + mVkbHost = new HbShrinkingVkbHost(this); + initializeVKB(); - //Get VKB host instance and start to listen VKB open and close signals for hiding the chrome. - HbEditorInterface editorInterface(mContentWidget->editor()); - mVkbHost = editorInterface.vkbHost(); + //start to listen VKB open and close signals for hiding the chrome. connect(mVkbHost, SIGNAL(keypadOpened()), this, SLOT(vkbOpened())); connect(mVkbHost, SIGNAL(keypadClosed()), this, SLOT(vkbClosed())); - - connect(mContentWidget->header(), SIGNAL(recipientFieldsHaveContent(bool)), + + connect(mContent->header(), SIGNAL(recipientFieldsHaveContent(bool)), this, SLOT(setButtonsDimming(bool)) ); // Connect to observe orientation change events @@ -646,6 +637,18 @@ } /*! + This is called when the view's geometry size has been changed, eg. when VKB is opened/closed. +*/ +void NmEditorView::resizeEvent(QGraphicsSceneResizeEvent *event) +{ + NM_FUNCTION; + + NmBaseView::resizeEvent(event); + + emit sizeChanged(); +} + +/*! This is signalled by mMessageCreationOperation when message is created. */ void NmEditorView::messageCreated(int result) @@ -681,45 +684,45 @@ NM_FUNCTION; if (mMessage) { - if (mContentWidget && mContentWidget->editor()) { + if (mContent && mContent->editor()) { NmMessagePart* bodyPart = mMessage->htmlBodyPart(); if (bodyPart) { - bodyPart->setTextContent(mContentWidget->editor()->toHtml(), NmContentTypeTextHtml); + bodyPart->setTextContent(mContent->editor()->toHtml(), NmContentTypeTextHtml); } bodyPart = mMessage->plainTextBodyPart(); if (bodyPart) { - bodyPart->setTextContent(mContentWidget->editor()->toPlainText(), NmContentTypeTextPlain); + bodyPart->setTextContent(mContent->editor()->toPlainText(), NmContentTypeTextPlain); } } - if (mContentWidget && mContentWidget->header() ) { - if (mContentWidget->header()->subjectEdit()) { + if (mContent && mContent->header() ) { + if (mContent->header()->subjectEdit()) { mMessage->envelope().setSubject( - mContentWidget->header()->subjectEdit()->text()); + mContent->header()->subjectEdit()->text()); } - if (mContentWidget->header()->toEdit()) { + if (mContent->header()->toEdit()) { QString toFieldText = - mContentWidget->header()->toEdit()->text(); + mContent->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()->toEdit()->emailAddressList()); + mMessage->envelope().setToRecipients(mContent->header()->toEdit()->emailAddressList()); } } - if (mContentWidget->header()->ccEdit()) { + if (mContent->header()->ccEdit()) { QString ccFieldText = - mContentWidget->header()->ccEdit()->text(); + mContent->header()->ccEdit()->text(); if (ccFieldText.length() > 0) { - mMessage->envelope().setCcRecipients(mContentWidget->header()->ccEdit()->emailAddressList()); + mMessage->envelope().setCcRecipients(mContent->header()->ccEdit()->emailAddressList()); } } - if (mContentWidget->header()->bccEdit()) { + if (mContent->header()->bccEdit()) { QString bccFieldText = - mContentWidget->header()->bccEdit()->text(); + mContent->header()->bccEdit()->text(); if (bccFieldText.length() > 0) { - mMessage->envelope().setBccRecipients(mContentWidget->header()->bccEdit()->emailAddressList()); + mMessage->envelope().setBccRecipients(mContent->header()->bccEdit()->emailAddressList()); } } } @@ -735,7 +738,7 @@ { NM_FUNCTION; - if (!mStartParam || !mMessage || !mContentWidget) { + if (!mStartParam || !mMessage || !mContent) { return; } @@ -765,14 +768,14 @@ bccAddressesString = addressListToString(messageEnvelope.bccRecipients()); } - mContentWidget->header()->toEdit()->setPlainText(toAddressesString); - mContentWidget->header()->ccEdit()->setPlainText(ccAddressesString); - mContentWidget->header()->bccEdit()->setPlainText(bccAddressesString); + mContent->header()->toEdit()->setPlainText(toAddressesString); + mContent->header()->ccEdit()->setPlainText(ccAddressesString); + mContent->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()->setFieldVisibility(true); + mContent->header()->setFieldVisibility(true); } // Set subject. @@ -780,16 +783,20 @@ QString *subject = mStartParam->subject(); if (subject) { - mContentWidget->header()->subjectEdit()->setPlainText(*subject); + mContent->header()->subjectEdit()->setPlainText(*subject); } } else { // Construct the subject field. - mContentWidget->header()->subjectEdit()->setPlainText( + mContent->header()->subjectEdit()->setPlainText( addSubjectPrefix(editorStartMode, messageEnvelope.subject())); } // Set priority. + if (editorStartMode==NmUiEditorReply || editorStartMode==NmUiEditorReplyAll) { + //Clear the importance flag. Replied messages dont keep the importance + setPriority(NmActionResponseCommandNone); + } mHeaderWidget->setPriority(messageEnvelope.priority()); // Set the message body. @@ -822,7 +829,7 @@ *htmlPart); } - mContentWidget->setMessageData(*originalMessage, editorStartMode); + mContent->setMessageData(*originalMessage, editorStartMode); } delete originalMessage; @@ -1042,7 +1049,7 @@ // Set the VKB action states // All editors of the view share the same action, so it is enough to set // this only to one of them. - HbEditorInterface editorInterface(mContentWidget->editor()); + HbEditorInterface editorInterface(mContent->editor()); QList vkbList = editorInterface.actions(); count = vkbList.count(); for (int i = 0; i < count; i++) { @@ -1084,15 +1091,15 @@ // Link VKB to the action. This must be done to all // editors that show the button in VKB. - HbEditorInterface editorInterface(mContentWidget->editor()); + HbEditorInterface editorInterface(mContent->editor()); editorInterface.addAction(list[i]); - HbEditorInterface toEditorInterface(mContentWidget->header()->toEdit()); + HbEditorInterface toEditorInterface(mContent->header()->toEdit()); toEditorInterface.addAction(list[i]); - HbEditorInterface ccEditorInterface(mContentWidget->header()->ccEdit()); + HbEditorInterface ccEditorInterface(mContent->header()->ccEdit()); ccEditorInterface.addAction(list[i]); - HbEditorInterface bccEditorInterface(mContentWidget->header()->bccEdit()); + HbEditorInterface bccEditorInterface(mContent->header()->bccEdit()); bccEditorInterface.addAction(list[i]); - HbEditorInterface subjectEditorInterface(mContentWidget->header()->subjectEdit()); + HbEditorInterface subjectEditorInterface(mContent->header()->subjectEdit()); subjectEditorInterface.addAction(list[i]); } } diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/src/nmmailboxlistview.cpp --- a/emailuis/nmailui/src/nmmailboxlistview.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/src/nmmailboxlistview.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -77,16 +77,20 @@ { NM_FUNCTION; + // Use document loader to load the view - bool ok(false); - setObjectName(QString(NMUI_MAILBOX_LIST_VIEW)); - // Pass the view to documentloader. Document loader uses this view - // when docml is parsed, instead of creating new view. - if (mDocumentLoader) { - mWidgetList = mDocumentLoader->load(NMUI_MAILBOX_LIST_VIEW_XML, &ok); - } + bool ok(false); + setObjectName(QString(NMUI_MAILBOX_LIST_VIEW)); + QObjectList objectList; + objectList.append(this); + // Pass the view to documentloader. Document loader uses this view + // when docml is parsed, instead of creating new view. + if (mDocumentLoader) { + mDocumentLoader->setObjectTree(objectList); + mWidgetList = mDocumentLoader->load(NMUI_MAILBOX_LIST_VIEW_XML, &ok); + } - if (ok == true && mWidgetList.count()) { + if (ok) { // Create item context menu mItemContextMenu = new HbMenu(); // Get mailbox widget pointer and set parameters diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/src/nmmessagelistview.cpp --- a/emailuis/nmailui/src/nmmessagelistview.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/src/nmmessagelistview.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -92,13 +92,16 @@ // Use document loader to load the view bool ok(false); setObjectName(QString(NMUI_MESSAGE_LIST_VIEW)); + QObjectList objectList; + objectList.append(this); // Pass the view to documentloader. Document loader uses this view // when docml is parsed, instead of creating new view. if (mDocumentLoader) { + mDocumentLoader->setObjectTree(objectList); mWidgetList = mDocumentLoader->load(NMUI_MESSAGE_LIST_VIEW_XML, &ok); } - if (ok == true && mWidgetList.count()) { + if (ok) { // Get message list widget mMessageListWidget = qobject_cast (mDocumentLoader->findWidget(NMUI_MESSAGE_LIST_TREE_LIST)); diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/src/nmmessagesearchlistview.cpp --- a/emailuis/nmailui/src/nmmessagesearchlistview.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/src/nmmessagesearchlistview.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -187,7 +187,7 @@ mWidgetList = mDocumentLoader->load(NMUI_MESSAGE_SEARCH_LIST_VIEW_XML, &ok); } - if (ok && mWidgetList.count()) { + if (ok) { // Get the message list widget. mMessageListWidget = qobject_cast( mDocumentLoader->findWidget(NMUI_MESSAGE_SEARCH_LIST_TREE_LIST)); diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/src/nmviewerview.cpp --- a/emailuis/nmailui/src/nmviewerview.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/src/nmviewerview.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -11,7 +11,7 @@ * * Contributors: * - * Description: + * Description: Mail viewer implementation. * */ @@ -25,11 +25,14 @@ static const char *NMUI_MESSAGE_VIEWER_HEADER = "viewerHeader"; static const char *NMUI_MESSAGE_VIEWER_ATTALIST = "viewerAttaList"; static const char *NMUI_MESSAGE_VIEWER_SCROLL_WEB_VIEW = "viewerWebView"; - static const int NmOrientationTimer = 100; static const int NmHeaderMargin = 3; - +static const int NmWhitePixmapSize = 10; +static const int NmProgressValueComplete = 100; static const QString NmParamTextHeightSecondary = "hb-param-text-height-secondary"; +static const QString NmHttpLinkScheme = "http"; +static const QString NmHttpsLinkScheme = "https"; +static const QString NmMailtoLinkScheme = "mailto"; /*! \class NmViewerView @@ -62,7 +65,6 @@ mDisplayingPlainText(false), mDocumentLoader(NULL), mScrollAreaContents(NULL), -mViewerHeaderContainer(NULL), mScreenSize(QSize(0,0)), mWaitDialog(NULL), webFrameloadingCompleted(false), @@ -135,13 +137,16 @@ // Use document loader to load the view bool ok(false); setObjectName(QString(NMUI_MESSAGE_VIEWER_VIEW)); - // Pass the view to documentloader. Document loader uses this view - // when docml is parsed, instead of creating new view. - // documentloader is created in constructor - mWidgetList = mDocumentLoader->load(NMUI_MESSAGE_VIEWER_XML, &ok); - int widgetCount = mWidgetList.count(); - if (ok == true && widgetCount) - { + QObjectList objectList; + objectList.append(this); + // Pass the view to documentloader. Document loader uses this view + // when docml is parsed, instead of creating new view. + // documentloader is created in constructor + mDocumentLoader->setObjectTree(objectList); + mWidgetList = mDocumentLoader->load(NMUI_MESSAGE_VIEWER_XML, &ok); + + if (ok) + { // Create content and content layout // qobject_cast not work in this case, using reinterpret_cast mViewerContent = reinterpret_cast( @@ -164,7 +169,7 @@ layout->setContentsMargins(0,0,0,0); } // Set white pixmap to backgrounditem - QPixmap whitePixmap(10,10); + QPixmap whitePixmap(NmWhitePixmapSize,NmWhitePixmapSize); whitePixmap.fill(Qt::white); QGraphicsPixmapItem *pixmapItem = new QGraphicsPixmapItem(whitePixmap); mScrollAreaContents->setBackgroundItem(pixmapItem); @@ -184,7 +189,6 @@ mWebView = reinterpret_cast( mDocumentLoader->findObject(QString(NMUI_MESSAGE_VIEWER_SCROLL_WEB_VIEW))); if (mWebView) { - mWebView->setParentView(this); // Set auto load images and private browsing(no history) attributes QWebSettings *settings = mWebView->settings(); if (settings) { @@ -457,40 +461,44 @@ void NmViewerView::openAttachment(int index) { NM_FUNCTION; - - NmId attaId = mAttaIdList.at(index); - // reload message to get updates part sizes - loadMessage(); - QList messageParts; - mMessage->attachmentList(messageParts); - NmId mailboxId = mMessage->envelope().mailboxId(); - NmId folderId = mMessage->envelope().folderId(); - NmId messageId = mMessage->envelope().messageId(); - for (int i = 0; i < messageParts.count(); i++) { - // message part found have to found - // and its fetched size is smaller than size, then start part fetch - if (messageParts[i]->partId() == attaId && - messageParts[i]->size() > messageParts[i]->fetchedSize()) { - // do not start if there's already ongoing fetch - if (mAttaIndexUnderFetch == NmNotFoundError) { - mAttaIndexUnderFetch = index; - mAttaManager.fetchAttachment(mailboxId, folderId, - messageId, attaId); - } - } - // attachment is fetched, open file - else if (messageParts[i]->partId() == attaId) { - mAttaManager.cancelFetch(); - XQSharableFile file = mUiEngine.messagePartFile(mailboxId, folderId, - messageId, attaId); - int error = NmUtilities::openFile(file); - file.close(); - if (error==NmNotFoundError){ - delete mErrorNote; - mErrorNote=NULL; - mErrorNote = NmUtilities::displayWarningNote(hbTrId("txt_mail_dialog_unable_to_open_attachment_file_ty")); - } - } + if (index >= 0) { + NmId attaId = mAttaIdList.at(index); + // reload message to get updates part sizes + loadMessage(); + QList messageParts; + if (mMessage) { + mMessage->attachmentList(messageParts); + NmId mailboxId = mMessage->envelope().mailboxId(); + NmId folderId = mMessage->envelope().folderId(); + NmId messageId = mMessage->envelope().messageId(); + for (int i = 0; i < messageParts.count(); i++) { + // message part found have to found + // and its fetched size is smaller than size, then start part fetch + if (messageParts[i]->partId() == attaId && + messageParts[i]->size() > messageParts[i]->fetchedSize()) { + // do not start if there's already ongoing fetch + if (mAttaIndexUnderFetch == NmNotFoundError) { + mAttaIndexUnderFetch = index; + mAttaManager.fetchAttachment(mailboxId, folderId, + messageId, attaId); + } + } + // attachment is fetched, open file + else if (messageParts[i]->partId() == attaId) { + mAttaManager.cancelFetch(); + XQSharableFile file = mUiEngine.messagePartFile(mailboxId, folderId, + messageId, attaId); + int error = NmUtilities::openFile(file); + file.close(); + if (error==NmNotFoundError){ + delete mErrorNote; + mErrorNote=NULL; + mErrorNote = NmUtilities::displayWarningNote( + hbTrId("txt_mail_dialog_unable_to_open_attachment_file_ty")); + } + } + } + } } } @@ -502,12 +510,33 @@ NM_FUNCTION; QString msg = ""; - // null pointer check for mMessage is done before calling this function - NmId mailboxId = mMessage->envelope().mailboxId(); - NmId folderId = mMessage->envelope().folderId(); - NmId messageId = mMessage->envelope().messageId(); - NmMessagePart *html = mMessage->htmlBodyPart(); - if (html) { + if (mMessage) { + NmMessagePart *html = mMessage->htmlBodyPart(); + if (html) { + msg += formatHtmlMessage(html); + } + else { + NmMessagePart *plain = mMessage->plainTextBodyPart(); + if (plain) { + msg += formatPlainTextMessage(plain); + } + } + } + return msg; +} + +/*! + Function formats html message +*/ +QString NmViewerView::formatHtmlMessage(NmMessagePart *html) +{ + NM_FUNCTION; + + QString msg = ""; + if (html && mMessage) { + NmId mailboxId = mMessage->envelope().mailboxId(); + NmId folderId = mMessage->envelope().folderId(); + NmId messageId = mMessage->envelope().messageId(); QList parts; mMessage->attachmentList(parts); for (int i=0; i < parts.count(); i++) { @@ -533,49 +562,60 @@ } int ret = mUiEngine.contentToMessagePart(mailboxId, folderId, messageId, *html); if (ret == NmNoError) { - msg = html->textContent(); - } + msg = html->textContent(); + } } - else { - NmMessagePart *plain = mMessage->plainTextBodyPart(); - if (plain) { - int ret = mUiEngine.contentToMessagePart(mailboxId, folderId, - messageId, *plain); - if (ret == NmNoError) { - QTextDocument document; - // set font - QFont currentFont = document.defaultFont(); - currentFont.setWeight(QFont::Normal); - qreal secondarySize; - HbStyle myStyle; - bool found = myStyle.parameter(NmParamTextHeightSecondary, secondarySize); - if (found) { - HbFontSpec fontSpec(HbFontSpec::Secondary); - fontSpec.setTextHeight(secondarySize); - currentFont.setPixelSize(fontSpec.font().pixelSize()); - } - document.setDefaultFont(currentFont); - // convert to html - document.setPlainText(plain->textContent()); - msg = document.toHtml(); + return msg; +} - if (qApp->layoutDirection()==Qt::RightToLeft){ - // add right alignment to document css section - QRegExp rx("()", Qt::CaseInsensitive); - rx.setMinimal(true); - int pos = rx.indexIn(msg); - if (pos > -1) { - QString newStr = rx.cap(1); - newStr.append(rx.cap(2)); - newStr.append("p { text-align: right } "); - newStr.append(rx.cap(3)); - msg.replace(rx, newStr); - } +/*! + Function formats plain text message message +*/ +QString NmViewerView::formatPlainTextMessage(NmMessagePart *plain) +{ + NM_FUNCTION; + + QString msg = ""; + if (plain && mMessage) { + NmId mailboxId = mMessage->envelope().mailboxId(); + NmId folderId = mMessage->envelope().folderId(); + NmId messageId = mMessage->envelope().messageId(); + int ret = mUiEngine.contentToMessagePart(mailboxId, folderId, + messageId, *plain); + if (ret == NmNoError) { + QTextDocument document; + // set font + QFont currentFont = document.defaultFont(); + currentFont.setWeight(QFont::Normal); + qreal secondarySize; + HbStyle myStyle; + bool found = myStyle.parameter(NmParamTextHeightSecondary, secondarySize); + if (found) { + HbFontSpec fontSpec(HbFontSpec::Secondary); + fontSpec.setTextHeight(secondarySize); + currentFont.setPixelSize(fontSpec.font().pixelSize()); + } + document.setDefaultFont(currentFont); + // convert to html + document.setPlainText(plain->textContent()); + msg = document.toHtml(); + + if (qApp->layoutDirection()==Qt::RightToLeft){ + // add right alignment to document css section + QRegExp rx("()", Qt::CaseInsensitive); + rx.setMinimal(true); + int pos = rx.indexIn(msg); + if (pos > -1) { + QString newStr = rx.cap(1); + newStr.append(rx.cap(2)); + newStr.append("p { text-align: right } "); + newStr.append(rx.cap(3)); + msg.replace(rx, newStr); } } - mDisplayingPlainText=true; - } + } } + mDisplayingPlainText=true; return msg; } @@ -659,9 +699,10 @@ void NmViewerView::scaleWebViewWhenLoaded() { QRectF myGeometry = geometry(); - if (mWebView && mWebView->page()) { - mWebView->page()->setViewportSize(myGeometry.size().toSize()); - QSizeF contentSize = mWebView->page()->mainFrame()->contentsSize(); + QWebPage *page = mWebView->page(); + if (mWebView && page) { + page->setViewportSize(myGeometry.size().toSize()); + QSizeF contentSize = page->mainFrame()->contentsSize(); int width = (int)contentSize.width(); int height = (int)contentSize.height(); mWebView->setPreferredWidth(width); @@ -711,11 +752,11 @@ { NM_FUNCTION; - if (link.scheme() == "http" || - link.scheme() == "https" ) { + if (link.scheme() == NmHttpLinkScheme || + link.scheme() == NmHttpsLinkScheme) { mAttaManager.cancelFetch(); QDesktopServices::openUrl(link); - } else if (link.scheme() == "mailto"){ + } else if (link.scheme() == NmMailtoLinkScheme){ mAttaManager.cancelFetch(); QList *addrList = new QList(); NmAddress *mailtoAddr = new NmAddress(); @@ -754,7 +795,7 @@ } /*! - get function for content widget web view. + Get function for content widget web view. */ NmMailViewerWK* NmViewerView::webView() { @@ -762,7 +803,7 @@ } /*! - + Get function for message being viewed */ NmMessage* NmViewerView::message() { @@ -938,17 +979,11 @@ NM_FUNCTION; QList messageList; - messageList.append(mStartParam->messageId()); - + 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)); - } } @@ -972,7 +1007,7 @@ { if (mAttaWidget && mAttaIndexUnderFetch != NmNotFoundError) { if (result == NmNoError) { - progressValueChanged(mAttaIndexUnderFetch, 100); + progressValueChanged(mAttaIndexUnderFetch, NmProgressValueComplete); openAttachment(mAttaIndexUnderFetch); } else { mAttaWidget->hideProgressBar(mAttaIndexUnderFetch); @@ -982,7 +1017,7 @@ } /*! - externalDelete. From NmMessageListModel, handles viewer shutdown when current message is deleted. + externalDelete. From NmUiEngine, handles viewer shutdown when current message is deleted. */ void NmViewerView::messageDeleted(const NmId &mailboxId, const NmId &folderId, const NmId &messageId) { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/src/nmviewerviewnetmanager.cpp --- a/emailuis/nmailui/src/nmviewerviewnetmanager.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/src/nmviewerviewnetmanager.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -11,8 +11,9 @@ * * Contributors: * -* Description: -* +* Description: NMail viewer net manager implementation. +* This class is needed to separate cid +* images from url-based images */ #include "nmuiheaders.h" @@ -82,10 +83,11 @@ if (isFetched) { reply = new NmViewerViewNetReply(data, mUiEngine); } - else { + else { + const NmMessageEnvelope &env = message->envelope(); reply = new NmViewerViewNetReply(data, mUiEngine, - message->envelope().mailboxId(), message->envelope().folderId(), - message->envelope().messageId(), partId); + env.mailboxId(), env.folderId(), + env.messageId(), partId); } reply->setOriginalRequest(myRequest); return reply; diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/src/nmviewerviewnetreply.cpp --- a/emailuis/nmailui/src/nmviewerviewnetreply.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/src/nmviewerviewnetreply.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -123,11 +123,8 @@ NM_FUNCTION; Q_UNUSED(result); - NmMessage *message(NULL); - message = mUiEngine.message( - mMailboxId, - mFolderId, - mMessageId); + NmMessage *message = mUiEngine.message( + mMailboxId, mFolderId, mMessageId); if (message) { QList partList; message->attachmentList(partList); @@ -135,6 +132,7 @@ for (int i = 0; !part && i < partList.count(); i++) { if (partList[i]->partId() == mMessagePartId) { part = partList[i]; + break; } } if (part) { diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailui/src/nmviewerwebview.cpp --- a/emailuis/nmailui/src/nmviewerwebview.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailui/src/nmviewerwebview.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -11,8 +11,8 @@ * * Contributors: * - * Description: - * + * Description: NMailUI web viewer. Inherits from + * QGrapohicsWebView and handles gestures, etc. */ #include "nmuiheaders.h" @@ -23,7 +23,6 @@ NmMailViewerWK::NmMailViewerWK() : QGraphicsWebView(), mContent(), - mParentView(NULL), mSuppressRelease(false) { // Subscribe this widget to tap and pinch gestures. @@ -42,14 +41,6 @@ } /*! - Sets the parent view. - */ -void NmMailViewerWK::setParentView(NmViewerView *parentView) -{ - mParentView = parentView; -} - -/*! Adds content into web view. */ void NmMailViewerWK::addContent(QString key, QVariant val, NmId partId, bool isFetched) @@ -74,7 +65,6 @@ isFetched = mContent[key].mIsFetched; return mContent[key].mData; } - return 0; } return 0; } diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailuiwidgets/bwins/nmailuiwidgetsu.def --- a/emailuis/nmailuiwidgets/bwins/nmailuiwidgetsu.def Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailuiwidgets/bwins/nmailuiwidgetsu.def Tue Jun 29 17:12:28 2010 +0300 @@ -26,107 +26,108 @@ ?getStaticMetaObject@NmBaseViewScrollArea@@SAABUQMetaObject@@XZ @ 25 NONAME ; struct QMetaObject const & NmBaseViewScrollArea::getStaticMetaObject(void) ?getStaticMetaObject@NmAttachmentListWidget@@SAABUQMetaObject@@XZ @ 26 NONAME ; struct QMetaObject const & NmAttachmentListWidget::getStaticMetaObject(void) ??_ENmAttachmentListItem@@UAE@I@Z @ 27 NONAME ; NmAttachmentListItem::~NmAttachmentListItem(unsigned int) - ?setFileSizeText@NmAttachmentListItem@@QAEXABVQString@@@Z @ 28 NONAME ; void NmAttachmentListItem::setFileSizeText(class QString const &) - ?qt_metacast@NmHtmlLineEdit@@UAEPAXPBD@Z @ 29 NONAME ; void * NmHtmlLineEdit::qt_metacast(char const *) - ?metaObject@NmEditorTextEdit@@UBEPBUQMetaObject@@XZ @ 30 NONAME ; struct QMetaObject const * NmEditorTextEdit::metaObject(void) const - ?staticMetaObject@NmHtmlLineEdit@@2UQMetaObject@@B @ 31 NONAME ; struct QMetaObject const NmHtmlLineEdit::staticMetaObject - ?setFileNameText@NmAttachmentListItem@@QAEXABVQString@@@Z @ 32 NONAME ; void NmAttachmentListItem::setFileNameText(class QString const &) - ?customTextColor@NmEditorTextEdit@@QBE?AU?$QPair@_NVQColor@@@@XZ @ 33 NONAME ; struct QPair NmEditorTextEdit::customTextColor(void) const - ?qt_metacast@NmBaseViewScrollArea@@UAEPAXPBD@Z @ 34 NONAME ; void * NmBaseViewScrollArea::qt_metacast(char const *) - ?inputMethodEvent@NmRecipientLineEdit@@MAEXPAVQInputMethodEvent@@@Z @ 35 NONAME ; void NmRecipientLineEdit::inputMethodEvent(class QInputMethodEvent *) - ?mouseReleaseEvent@NmBaseViewScrollArea@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 36 NONAME ; void NmBaseViewScrollArea::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) - ?tr@NmBaseViewScrollArea@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString NmBaseViewScrollArea::tr(char const *, char const *, int) - ?qt_metacall@NmAttachmentListWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 38 NONAME ; int NmAttachmentListWidget::qt_metacall(enum QMetaObject::Call, int, void * *) - ?trUtf8@NmAttachmentListWidget@@SA?AVQString@@PBD0H@Z @ 39 NONAME ; class QString NmAttachmentListWidget::trUtf8(char const *, char const *, int) - ?constructUi@NmAttachmentListWidget@@AAEXXZ @ 40 NONAME ; void NmAttachmentListWidget::constructUi(void) - ?qt_metacall@NmRecipientLineEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 41 NONAME ; int NmRecipientLineEdit::qt_metacall(enum QMetaObject::Call, int, void * *) - ??0NmAttachmentListItem@@QAE@PAVQGraphicsItem@@@Z @ 42 NONAME ; NmAttachmentListItem::NmAttachmentListItem(class QGraphicsItem *) - ?addSelectedContacts@NmRecipientLineEdit@@QAEXABVQVariant@@@Z @ 43 NONAME ; void NmRecipientLineEdit::addSelectedContacts(class QVariant const &) - ?toPlainText@NmHtmlLineEdit@@QBE?AVQString@@XZ @ 44 NONAME ; class QString NmHtmlLineEdit::toPlainText(void) const - ?trUtf8@NmBaseViewScrollArea@@SA?AVQString@@PBD0H@Z @ 45 NONAME ; class QString NmBaseViewScrollArea::trUtf8(char const *, char const *, int) - ?tr@NmEditorTextEdit@@SA?AVQString@@PBD0@Z @ 46 NONAME ; class QString NmEditorTextEdit::tr(char const *, char const *) - ?getStaticMetaObject@NmEditorTextEdit@@SAABUQMetaObject@@XZ @ 47 NONAME ; struct QMetaObject const & NmEditorTextEdit::getStaticMetaObject(void) - ?staticMetaObject@NmAttachmentListItem@@2UQMetaObject@@B @ 48 NONAME ; struct QMetaObject const NmAttachmentListItem::staticMetaObject - ??1NmHtmlLineEdit@@UAE@XZ @ 49 NONAME ; NmHtmlLineEdit::~NmHtmlLineEdit(void) - ?setProgressBarValue@NmAttachmentListItem@@QAEXH@Z @ 50 NONAME ; void NmAttachmentListItem::setProgressBarValue(int) - ?trUtf8@NmHtmlLineEdit@@SA?AVQString@@PBD0@Z @ 51 NONAME ; class QString NmHtmlLineEdit::trUtf8(char const *, char const *) - ??_ENmBaseViewScrollArea@@UAE@I@Z @ 52 NONAME ; NmBaseViewScrollArea::~NmBaseViewScrollArea(unsigned int) - ?progressBarValue@NmAttachmentListItem@@QBEHXZ @ 53 NONAME ; int NmAttachmentListItem::progressBarValue(void) const - ?itemLongPressed@NmAttachmentListItem@@IAEXVQPointF@@@Z @ 54 NONAME ; void NmAttachmentListItem::itemLongPressed(class QPointF) - ?gestureEvent@NmAttachmentListItem@@MAEXPAVQGestureEvent@@@Z @ 55 NONAME ; void NmAttachmentListItem::gestureEvent(class QGestureEvent *) - ?setCustomTextColor@NmEditorTextEdit@@QAEX_NABVQColor@@@Z @ 56 NONAME ; void NmEditorTextEdit::setCustomTextColor(bool, class QColor const &) - ?init@NmAttachmentListItem@@AAEXXZ @ 57 NONAME ; void NmAttachmentListItem::init(void) - ??0NmRecipientLineEdit@@QAE@PAVQGraphicsItem@@@Z @ 58 NONAME ; NmRecipientLineEdit::NmRecipientLineEdit(class QGraphicsItem *) - ??0NmHtmlLineEdit@@QAE@PAVQGraphicsItem@@@Z @ 59 NONAME ; NmHtmlLineEdit::NmHtmlLineEdit(class QGraphicsItem *) - ?tr@NmRecipientLineEdit@@SA?AVQString@@PBD0@Z @ 60 NONAME ; class QString NmRecipientLineEdit::tr(char const *, char const *) - ?setAttachmentSize@NmAttachmentListWidget@@QAEXHABVQString@@@Z @ 61 NONAME ; void NmAttachmentListWidget::setAttachmentSize(int, class QString const &) - ?trUtf8@NmEditorTextEdit@@SA?AVQString@@PBD0H@Z @ 62 NONAME ; class QString NmEditorTextEdit::trUtf8(char const *, char const *, int) - ?setPlainText@NmHtmlLineEdit@@QAEXABVQString@@@Z @ 63 NONAME ; void NmHtmlLineEdit::setPlainText(class QString const &) - ?longPressGesture@NmBaseViewScrollArea@@MAEXABVQPointF@@@Z @ 64 NONAME ; void NmBaseViewScrollArea::longPressGesture(class QPointF const &) - ?updateCustomTextColor@NmEditorTextEdit@@QAEXXZ @ 65 NONAME ; void NmEditorTextEdit::updateCustomTextColor(void) - ?orientationChanged@NmAttachmentListWidget@@AAEXW4Orientation@Qt@@@Z @ 66 NONAME ; void NmAttachmentListWidget::orientationChanged(enum Qt::Orientation) - ?qt_metacast@NmAttachmentListWidget@@UAEPAXPBD@Z @ 67 NONAME ; void * NmAttachmentListWidget::qt_metacast(char const *) - ?getStaticMetaObject@NmHtmlLineEdit@@SAABUQMetaObject@@XZ @ 68 NONAME ; struct QMetaObject const & NmHtmlLineEdit::getStaticMetaObject(void) - ?qt_metacall@NmEditorTextEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 69 NONAME ; int NmEditorTextEdit::qt_metacall(enum QMetaObject::Call, int, void * *) - ??1NmEditorTextEdit@@UAE@XZ @ 70 NONAME ; NmEditorTextEdit::~NmEditorTextEdit(void) - ?generateEmailAddressList@NmRecipientLineEdit@@AAEXXZ @ 71 NONAME ; void NmRecipientLineEdit::generateEmailAddressList(void) - ?trUtf8@NmAttachmentListWidget@@SA?AVQString@@PBD0@Z @ 72 NONAME ; class QString NmAttachmentListWidget::trUtf8(char const *, char const *) - ??1NmAttachmentListWidget@@UAE@XZ @ 73 NONAME ; NmAttachmentListWidget::~NmAttachmentListWidget(void) - ??_ENmRecipientLineEdit@@UAE@I@Z @ 74 NONAME ; NmRecipientLineEdit::~NmRecipientLineEdit(unsigned int) - ?mousePressEvent@NmBaseViewScrollArea@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 75 NONAME ; void NmBaseViewScrollArea::mousePressEvent(class QGraphicsSceneMouseEvent *) - ?qt_metacast@NmRecipientLineEdit@@UAEPAXPBD@Z @ 76 NONAME ; void * NmRecipientLineEdit::qt_metacast(char const *) - ?setCustomTextColor@NmEditorTextEdit@@QAEXABU?$QPair@_NVQColor@@@@@Z @ 77 NONAME ; void NmEditorTextEdit::setCustomTextColor(struct QPair const &) - ?setDocument@NmHtmlLineEdit@@QAEXPAVQTextDocument@@@Z @ 78 NONAME ; void NmHtmlLineEdit::setDocument(class QTextDocument *) - ?handleItemActivated@NmAttachmentListWidget@@AAEXXZ @ 79 NONAME ; void NmAttachmentListWidget::handleItemActivated(void) - ?trUtf8@NmEditorTextEdit@@SA?AVQString@@PBD0@Z @ 80 NONAME ; class QString NmEditorTextEdit::trUtf8(char const *, char const *) - ??0NmBaseViewScrollArea@@QAE@PAVQGraphicsItem@@@Z @ 81 NONAME ; NmBaseViewScrollArea::NmBaseViewScrollArea(class QGraphicsItem *) - ?metaObject@NmAttachmentListWidget@@UBEPBUQMetaObject@@XZ @ 82 NONAME ; struct QMetaObject const * NmAttachmentListWidget::metaObject(void) const - ?constructUi@NmAttachmentListItem@@AAEXXZ @ 83 NONAME ; void NmAttachmentListItem::constructUi(void) - ?longPressed@NmAttachmentListWidget@@IAEXHVQPointF@@@Z @ 84 NONAME ; void NmAttachmentListWidget::longPressed(int, class QPointF) - ?trUtf8@NmHtmlLineEdit@@SA?AVQString@@PBD0H@Z @ 85 NONAME ; class QString NmHtmlLineEdit::trUtf8(char const *, char const *, int) - ?staticMetaObject@NmEditorTextEdit@@2UQMetaObject@@B @ 86 NONAME ; struct QMetaObject const NmEditorTextEdit::staticMetaObject - ??0NmEditorTextEdit@@QAE@PAVQGraphicsItem@@@Z @ 87 NONAME ; NmEditorTextEdit::NmEditorTextEdit(class QGraphicsItem *) - ?tr@NmHtmlLineEdit@@SA?AVQString@@PBD0H@Z @ 88 NONAME ; class QString NmHtmlLineEdit::tr(char const *, char const *, int) - ?setHtml@NmHtmlLineEdit@@QAEXABVQString@@@Z @ 89 NONAME ; void NmHtmlLineEdit::setHtml(class QString const &) - ??_ENmEditorTextEdit@@UAE@I@Z @ 90 NONAME ; NmEditorTextEdit::~NmEditorTextEdit(unsigned int) - ?tr@NmAttachmentListWidget@@SA?AVQString@@PBD0@Z @ 91 NONAME ; class QString NmAttachmentListWidget::tr(char const *, char const *) - ?itemActivated@NmAttachmentListItem@@IAEXXZ @ 92 NONAME ; void NmAttachmentListItem::itemActivated(void) - ?hideProgressBar@NmAttachmentListItem@@QAEXXZ @ 93 NONAME ; void NmAttachmentListItem::hideProgressBar(void) - ?qt_metacast@NmAttachmentListItem@@UAEPAXPBD@Z @ 94 NONAME ; void * NmAttachmentListItem::qt_metacast(char const *) - ?getStaticMetaObject@NmRecipientLineEdit@@SAABUQMetaObject@@XZ @ 95 NONAME ; struct QMetaObject const & NmRecipientLineEdit::getStaticMetaObject(void) - ?findItem@NmAttachmentListWidget@@AAEHPBVQObject@@@Z @ 96 NONAME ; int NmAttachmentListWidget::findItem(class QObject const *) - ?removeAttachment@NmAttachmentListWidget@@QAEXH@Z @ 97 NONAME ; void NmAttachmentListWidget::removeAttachment(int) - ??1NmRecipientLineEdit@@UAE@XZ @ 98 NONAME ; NmRecipientLineEdit::~NmRecipientLineEdit(void) - ?trUtf8@NmRecipientLineEdit@@SA?AVQString@@PBD0H@Z @ 99 NONAME ; class QString NmRecipientLineEdit::trUtf8(char const *, char const *, int) - ?tr@NmRecipientLineEdit@@SA?AVQString@@PBD0H@Z @ 100 NONAME ; class QString NmRecipientLineEdit::tr(char const *, char const *, int) - ?progressValue@NmAttachmentListWidget@@QBEHH@Z @ 101 NONAME ; int NmAttachmentListWidget::progressValue(int) const - ?staticMetaObject@NmAttachmentListWidget@@2UQMetaObject@@B @ 102 NONAME ; struct QMetaObject const NmAttachmentListWidget::staticMetaObject - ??_ENmAttachmentListWidget@@UAE@I@Z @ 103 NONAME ; NmAttachmentListWidget::~NmAttachmentListWidget(unsigned int) - ?setTextCursor@NmHtmlLineEdit@@QAEXABVQTextCursor@@@Z @ 104 NONAME ; void NmHtmlLineEdit::setTextCursor(class QTextCursor const &) - ?setTextColor@NmAttachmentListWidget@@QAEXVQColor@@@Z @ 105 NONAME ; void NmAttachmentListWidget::setTextColor(class QColor) - ?handleMouseMoveEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 106 NONAME ; void NmBaseViewScrollArea::handleMouseMoveEvent(class QGraphicsSceneMouseEvent *) - ?staticMetaObject@NmRecipientLineEdit@@2UQMetaObject@@B @ 107 NONAME ; struct QMetaObject const NmRecipientLineEdit::staticMetaObject - ?setProgressBarValue@NmAttachmentListWidget@@QAEXHH@Z @ 108 NONAME ; void NmAttachmentListWidget::setProgressBarValue(int, int) - ?handleMouseReleaseEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 109 NONAME ; void NmBaseViewScrollArea::handleMouseReleaseEvent(class QGraphicsSceneMouseEvent *) - ?insertAttachment@NmAttachmentListWidget@@QAEXHABVQString@@0@Z @ 110 NONAME ; void NmAttachmentListWidget::insertAttachment(int, class QString const &, class QString const &) - ?metaObject@NmAttachmentListItem@@UBEPBUQMetaObject@@XZ @ 111 NONAME ; struct QMetaObject const * NmAttachmentListItem::metaObject(void) const - ?removeProgressBar@NmAttachmentListItem@@AAEXXZ @ 112 NONAME ; void NmAttachmentListItem::removeProgressBar(void) - ??1NmBaseViewScrollArea@@UAE@XZ @ 113 NONAME ; NmBaseViewScrollArea::~NmBaseViewScrollArea(void) - ?hideProgressBar@NmAttachmentListWidget@@QAEXH@Z @ 114 NONAME ; void NmAttachmentListWidget::hideProgressBar(int) - ??0NmAttachmentListWidget@@QAE@PAVQGraphicsItem@@@Z @ 115 NONAME ; NmAttachmentListWidget::NmAttachmentListWidget(class QGraphicsItem *) - ??_ENmHtmlLineEdit@@UAE@I@Z @ 116 NONAME ; NmHtmlLineEdit::~NmHtmlLineEdit(unsigned int) - ?tr@NmAttachmentListWidget@@SA?AVQString@@PBD0H@Z @ 117 NONAME ; class QString NmAttachmentListWidget::tr(char const *, char const *, int) - ?handleMousePressEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 118 NONAME ; void NmBaseViewScrollArea::handleMousePressEvent(class QGraphicsSceneMouseEvent *) - ?insertItemToLayout@NmAttachmentListWidget@@AAEXPAVNmAttachmentListItem@@@Z @ 119 NONAME ; void NmAttachmentListWidget::insertItemToLayout(class NmAttachmentListItem *) - ?metaObject@NmHtmlLineEdit@@UBEPBUQMetaObject@@XZ @ 120 NONAME ; struct QMetaObject const * NmHtmlLineEdit::metaObject(void) const - ?setTextColor@NmAttachmentListItem@@QAEXVQColor@@@Z @ 121 NONAME ; void NmAttachmentListItem::setTextColor(class QColor) - ??1NmAttachmentListItem@@UAE@XZ @ 122 NONAME ; NmAttachmentListItem::~NmAttachmentListItem(void) - ?rectForPosition@NmEditorTextEdit@@QAE?AVQRectF@@H@Z @ 123 NONAME ; class QRectF NmEditorTextEdit::rectForPosition(int) - ?count@NmAttachmentListWidget@@QBEHXZ @ 124 NONAME ; int NmAttachmentListWidget::count(void) const - ?tr@NmAttachmentListItem@@SA?AVQString@@PBD0H@Z @ 125 NONAME ; class QString NmAttachmentListItem::tr(char const *, char const *, int) - ?handleTextChanged@NmRecipientLineEdit@@AAEXABVQString@@@Z @ 126 NONAME ; void NmRecipientLineEdit::handleTextChanged(class QString const &) - ?document@NmHtmlLineEdit@@QBEPAVQTextDocument@@XZ @ 127 NONAME ; class QTextDocument * NmHtmlLineEdit::document(void) const - ?tr@NmHtmlLineEdit@@SA?AVQString@@PBD0@Z @ 128 NONAME ; class QString NmHtmlLineEdit::tr(char const *, char const *) - ?qt_metacall@NmHtmlLineEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 129 NONAME ; int NmHtmlLineEdit::qt_metacall(enum QMetaObject::Call, int, void * *) - ?qt_metacall@NmBaseViewScrollArea@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 130 NONAME ; int NmBaseViewScrollArea::qt_metacall(enum QMetaObject::Call, int, void * *) + ?rectForCursorPosition@NmEditorTextEdit@@QBE?AVQRectF@@XZ @ 28 NONAME ; class QRectF NmEditorTextEdit::rectForCursorPosition(void) const + ?setFileSizeText@NmAttachmentListItem@@QAEXABVQString@@@Z @ 29 NONAME ; void NmAttachmentListItem::setFileSizeText(class QString const &) + ?qt_metacast@NmHtmlLineEdit@@UAEPAXPBD@Z @ 30 NONAME ; void * NmHtmlLineEdit::qt_metacast(char const *) + ?metaObject@NmEditorTextEdit@@UBEPBUQMetaObject@@XZ @ 31 NONAME ; struct QMetaObject const * NmEditorTextEdit::metaObject(void) const + ?staticMetaObject@NmHtmlLineEdit@@2UQMetaObject@@B @ 32 NONAME ; struct QMetaObject const NmHtmlLineEdit::staticMetaObject + ?setFileNameText@NmAttachmentListItem@@QAEXABVQString@@@Z @ 33 NONAME ; void NmAttachmentListItem::setFileNameText(class QString const &) + ?customTextColor@NmEditorTextEdit@@QBE?AU?$QPair@_NVQColor@@@@XZ @ 34 NONAME ; struct QPair NmEditorTextEdit::customTextColor(void) const + ?qt_metacast@NmBaseViewScrollArea@@UAEPAXPBD@Z @ 35 NONAME ; void * NmBaseViewScrollArea::qt_metacast(char const *) + ?inputMethodEvent@NmRecipientLineEdit@@MAEXPAVQInputMethodEvent@@@Z @ 36 NONAME ; void NmRecipientLineEdit::inputMethodEvent(class QInputMethodEvent *) + ?mouseReleaseEvent@NmBaseViewScrollArea@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 37 NONAME ; void NmBaseViewScrollArea::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ?tr@NmBaseViewScrollArea@@SA?AVQString@@PBD0H@Z @ 38 NONAME ; class QString NmBaseViewScrollArea::tr(char const *, char const *, int) + ?qt_metacall@NmAttachmentListWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 39 NONAME ; int NmAttachmentListWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@NmAttachmentListWidget@@SA?AVQString@@PBD0H@Z @ 40 NONAME ; class QString NmAttachmentListWidget::trUtf8(char const *, char const *, int) + ?constructUi@NmAttachmentListWidget@@AAEXXZ @ 41 NONAME ; void NmAttachmentListWidget::constructUi(void) + ?qt_metacall@NmRecipientLineEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 42 NONAME ; int NmRecipientLineEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0NmAttachmentListItem@@QAE@PAVQGraphicsItem@@@Z @ 43 NONAME ; NmAttachmentListItem::NmAttachmentListItem(class QGraphicsItem *) + ?addSelectedContacts@NmRecipientLineEdit@@QAEXABVQVariant@@@Z @ 44 NONAME ; void NmRecipientLineEdit::addSelectedContacts(class QVariant const &) + ?toPlainText@NmHtmlLineEdit@@QBE?AVQString@@XZ @ 45 NONAME ; class QString NmHtmlLineEdit::toPlainText(void) const + ?trUtf8@NmBaseViewScrollArea@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString NmBaseViewScrollArea::trUtf8(char const *, char const *, int) + ?tr@NmEditorTextEdit@@SA?AVQString@@PBD0@Z @ 47 NONAME ; class QString NmEditorTextEdit::tr(char const *, char const *) + ?getStaticMetaObject@NmEditorTextEdit@@SAABUQMetaObject@@XZ @ 48 NONAME ; struct QMetaObject const & NmEditorTextEdit::getStaticMetaObject(void) + ?staticMetaObject@NmAttachmentListItem@@2UQMetaObject@@B @ 49 NONAME ; struct QMetaObject const NmAttachmentListItem::staticMetaObject + ??1NmHtmlLineEdit@@UAE@XZ @ 50 NONAME ; NmHtmlLineEdit::~NmHtmlLineEdit(void) + ?setProgressBarValue@NmAttachmentListItem@@QAEXH@Z @ 51 NONAME ; void NmAttachmentListItem::setProgressBarValue(int) + ?trUtf8@NmHtmlLineEdit@@SA?AVQString@@PBD0@Z @ 52 NONAME ; class QString NmHtmlLineEdit::trUtf8(char const *, char const *) + ??_ENmBaseViewScrollArea@@UAE@I@Z @ 53 NONAME ; NmBaseViewScrollArea::~NmBaseViewScrollArea(unsigned int) + ?progressBarValue@NmAttachmentListItem@@QBEHXZ @ 54 NONAME ; int NmAttachmentListItem::progressBarValue(void) const + ?itemLongPressed@NmAttachmentListItem@@IAEXVQPointF@@@Z @ 55 NONAME ; void NmAttachmentListItem::itemLongPressed(class QPointF) + ?gestureEvent@NmAttachmentListItem@@MAEXPAVQGestureEvent@@@Z @ 56 NONAME ; void NmAttachmentListItem::gestureEvent(class QGestureEvent *) + ?setCustomTextColor@NmEditorTextEdit@@QAEX_NABVQColor@@@Z @ 57 NONAME ; void NmEditorTextEdit::setCustomTextColor(bool, class QColor const &) + ?init@NmAttachmentListItem@@AAEXXZ @ 58 NONAME ; void NmAttachmentListItem::init(void) + ??0NmRecipientLineEdit@@QAE@PAVQGraphicsItem@@@Z @ 59 NONAME ; NmRecipientLineEdit::NmRecipientLineEdit(class QGraphicsItem *) + ??0NmHtmlLineEdit@@QAE@PAVQGraphicsItem@@@Z @ 60 NONAME ; NmHtmlLineEdit::NmHtmlLineEdit(class QGraphicsItem *) + ?tr@NmRecipientLineEdit@@SA?AVQString@@PBD0@Z @ 61 NONAME ; class QString NmRecipientLineEdit::tr(char const *, char const *) + ?setAttachmentSize@NmAttachmentListWidget@@QAEXHABVQString@@@Z @ 62 NONAME ; void NmAttachmentListWidget::setAttachmentSize(int, class QString const &) + ?trUtf8@NmEditorTextEdit@@SA?AVQString@@PBD0H@Z @ 63 NONAME ; class QString NmEditorTextEdit::trUtf8(char const *, char const *, int) + ?setPlainText@NmHtmlLineEdit@@QAEXABVQString@@@Z @ 64 NONAME ; void NmHtmlLineEdit::setPlainText(class QString const &) + ?longPressGesture@NmBaseViewScrollArea@@MAEXABVQPointF@@@Z @ 65 NONAME ; void NmBaseViewScrollArea::longPressGesture(class QPointF const &) + ?updateCustomTextColor@NmEditorTextEdit@@QAEXXZ @ 66 NONAME ; void NmEditorTextEdit::updateCustomTextColor(void) + ?orientationChanged@NmAttachmentListWidget@@AAEXW4Orientation@Qt@@@Z @ 67 NONAME ; void NmAttachmentListWidget::orientationChanged(enum Qt::Orientation) + ?qt_metacast@NmAttachmentListWidget@@UAEPAXPBD@Z @ 68 NONAME ; void * NmAttachmentListWidget::qt_metacast(char const *) + ?getStaticMetaObject@NmHtmlLineEdit@@SAABUQMetaObject@@XZ @ 69 NONAME ; struct QMetaObject const & NmHtmlLineEdit::getStaticMetaObject(void) + ?qt_metacall@NmEditorTextEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 70 NONAME ; int NmEditorTextEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ??1NmEditorTextEdit@@UAE@XZ @ 71 NONAME ; NmEditorTextEdit::~NmEditorTextEdit(void) + ?generateEmailAddressList@NmRecipientLineEdit@@AAEXXZ @ 72 NONAME ; void NmRecipientLineEdit::generateEmailAddressList(void) + ?trUtf8@NmAttachmentListWidget@@SA?AVQString@@PBD0@Z @ 73 NONAME ; class QString NmAttachmentListWidget::trUtf8(char const *, char const *) + ??1NmAttachmentListWidget@@UAE@XZ @ 74 NONAME ; NmAttachmentListWidget::~NmAttachmentListWidget(void) + ??_ENmRecipientLineEdit@@UAE@I@Z @ 75 NONAME ; NmRecipientLineEdit::~NmRecipientLineEdit(unsigned int) + ?mousePressEvent@NmBaseViewScrollArea@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 76 NONAME ; void NmBaseViewScrollArea::mousePressEvent(class QGraphicsSceneMouseEvent *) + ?qt_metacast@NmRecipientLineEdit@@UAEPAXPBD@Z @ 77 NONAME ; void * NmRecipientLineEdit::qt_metacast(char const *) + ?setCustomTextColor@NmEditorTextEdit@@QAEXABU?$QPair@_NVQColor@@@@@Z @ 78 NONAME ; void NmEditorTextEdit::setCustomTextColor(struct QPair const &) + ?setDocument@NmHtmlLineEdit@@QAEXPAVQTextDocument@@@Z @ 79 NONAME ; void NmHtmlLineEdit::setDocument(class QTextDocument *) + ?handleItemActivated@NmAttachmentListWidget@@AAEXXZ @ 80 NONAME ; void NmAttachmentListWidget::handleItemActivated(void) + ?trUtf8@NmEditorTextEdit@@SA?AVQString@@PBD0@Z @ 81 NONAME ; class QString NmEditorTextEdit::trUtf8(char const *, char const *) + ??0NmBaseViewScrollArea@@QAE@PAVQGraphicsItem@@@Z @ 82 NONAME ; NmBaseViewScrollArea::NmBaseViewScrollArea(class QGraphicsItem *) + ?metaObject@NmAttachmentListWidget@@UBEPBUQMetaObject@@XZ @ 83 NONAME ; struct QMetaObject const * NmAttachmentListWidget::metaObject(void) const + ?constructUi@NmAttachmentListItem@@AAEXXZ @ 84 NONAME ; void NmAttachmentListItem::constructUi(void) + ?longPressed@NmAttachmentListWidget@@IAEXHVQPointF@@@Z @ 85 NONAME ; void NmAttachmentListWidget::longPressed(int, class QPointF) + ?trUtf8@NmHtmlLineEdit@@SA?AVQString@@PBD0H@Z @ 86 NONAME ; class QString NmHtmlLineEdit::trUtf8(char const *, char const *, int) + ?staticMetaObject@NmEditorTextEdit@@2UQMetaObject@@B @ 87 NONAME ; struct QMetaObject const NmEditorTextEdit::staticMetaObject + ??0NmEditorTextEdit@@QAE@PAVQGraphicsItem@@@Z @ 88 NONAME ; NmEditorTextEdit::NmEditorTextEdit(class QGraphicsItem *) + ?tr@NmHtmlLineEdit@@SA?AVQString@@PBD0H@Z @ 89 NONAME ; class QString NmHtmlLineEdit::tr(char const *, char const *, int) + ?setHtml@NmHtmlLineEdit@@QAEXABVQString@@@Z @ 90 NONAME ; void NmHtmlLineEdit::setHtml(class QString const &) + ??_ENmEditorTextEdit@@UAE@I@Z @ 91 NONAME ; NmEditorTextEdit::~NmEditorTextEdit(unsigned int) + ?tr@NmAttachmentListWidget@@SA?AVQString@@PBD0@Z @ 92 NONAME ; class QString NmAttachmentListWidget::tr(char const *, char const *) + ?itemActivated@NmAttachmentListItem@@IAEXXZ @ 93 NONAME ; void NmAttachmentListItem::itemActivated(void) + ?hideProgressBar@NmAttachmentListItem@@QAEXXZ @ 94 NONAME ; void NmAttachmentListItem::hideProgressBar(void) + ?qt_metacast@NmAttachmentListItem@@UAEPAXPBD@Z @ 95 NONAME ; void * NmAttachmentListItem::qt_metacast(char const *) + ?getStaticMetaObject@NmRecipientLineEdit@@SAABUQMetaObject@@XZ @ 96 NONAME ; struct QMetaObject const & NmRecipientLineEdit::getStaticMetaObject(void) + ?findItem@NmAttachmentListWidget@@AAEHPBVQObject@@@Z @ 97 NONAME ; int NmAttachmentListWidget::findItem(class QObject const *) + ?removeAttachment@NmAttachmentListWidget@@QAEXH@Z @ 98 NONAME ; void NmAttachmentListWidget::removeAttachment(int) + ??1NmRecipientLineEdit@@UAE@XZ @ 99 NONAME ; NmRecipientLineEdit::~NmRecipientLineEdit(void) + ?trUtf8@NmRecipientLineEdit@@SA?AVQString@@PBD0H@Z @ 100 NONAME ; class QString NmRecipientLineEdit::trUtf8(char const *, char const *, int) + ?tr@NmRecipientLineEdit@@SA?AVQString@@PBD0H@Z @ 101 NONAME ; class QString NmRecipientLineEdit::tr(char const *, char const *, int) + ?progressValue@NmAttachmentListWidget@@QBEHH@Z @ 102 NONAME ; int NmAttachmentListWidget::progressValue(int) const + ?staticMetaObject@NmAttachmentListWidget@@2UQMetaObject@@B @ 103 NONAME ; struct QMetaObject const NmAttachmentListWidget::staticMetaObject + ??_ENmAttachmentListWidget@@UAE@I@Z @ 104 NONAME ; NmAttachmentListWidget::~NmAttachmentListWidget(unsigned int) + ?setTextCursor@NmHtmlLineEdit@@QAEXABVQTextCursor@@@Z @ 105 NONAME ; void NmHtmlLineEdit::setTextCursor(class QTextCursor const &) + ?setTextColor@NmAttachmentListWidget@@QAEXVQColor@@@Z @ 106 NONAME ; void NmAttachmentListWidget::setTextColor(class QColor) + ?rectForCursorPosition@NmHtmlLineEdit@@QBE?AVQRectF@@XZ @ 107 NONAME ; class QRectF NmHtmlLineEdit::rectForCursorPosition(void) const + ?handleMouseMoveEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 108 NONAME ; void NmBaseViewScrollArea::handleMouseMoveEvent(class QGraphicsSceneMouseEvent *) + ?staticMetaObject@NmRecipientLineEdit@@2UQMetaObject@@B @ 109 NONAME ; struct QMetaObject const NmRecipientLineEdit::staticMetaObject + ?setProgressBarValue@NmAttachmentListWidget@@QAEXHH@Z @ 110 NONAME ; void NmAttachmentListWidget::setProgressBarValue(int, int) + ?handleMouseReleaseEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 111 NONAME ; void NmBaseViewScrollArea::handleMouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ?insertAttachment@NmAttachmentListWidget@@QAEXHABVQString@@0@Z @ 112 NONAME ; void NmAttachmentListWidget::insertAttachment(int, class QString const &, class QString const &) + ?metaObject@NmAttachmentListItem@@UBEPBUQMetaObject@@XZ @ 113 NONAME ; struct QMetaObject const * NmAttachmentListItem::metaObject(void) const + ?removeProgressBar@NmAttachmentListItem@@AAEXXZ @ 114 NONAME ; void NmAttachmentListItem::removeProgressBar(void) + ??1NmBaseViewScrollArea@@UAE@XZ @ 115 NONAME ; NmBaseViewScrollArea::~NmBaseViewScrollArea(void) + ?hideProgressBar@NmAttachmentListWidget@@QAEXH@Z @ 116 NONAME ; void NmAttachmentListWidget::hideProgressBar(int) + ??0NmAttachmentListWidget@@QAE@PAVQGraphicsItem@@@Z @ 117 NONAME ; NmAttachmentListWidget::NmAttachmentListWidget(class QGraphicsItem *) + ??_ENmHtmlLineEdit@@UAE@I@Z @ 118 NONAME ; NmHtmlLineEdit::~NmHtmlLineEdit(unsigned int) + ?tr@NmAttachmentListWidget@@SA?AVQString@@PBD0H@Z @ 119 NONAME ; class QString NmAttachmentListWidget::tr(char const *, char const *, int) + ?handleMousePressEvent@NmBaseViewScrollArea@@IAEXPAVQGraphicsSceneMouseEvent@@@Z @ 120 NONAME ; void NmBaseViewScrollArea::handleMousePressEvent(class QGraphicsSceneMouseEvent *) + ?insertItemToLayout@NmAttachmentListWidget@@AAEXPAVNmAttachmentListItem@@@Z @ 121 NONAME ; void NmAttachmentListWidget::insertItemToLayout(class NmAttachmentListItem *) + ?metaObject@NmHtmlLineEdit@@UBEPBUQMetaObject@@XZ @ 122 NONAME ; struct QMetaObject const * NmHtmlLineEdit::metaObject(void) const + ?setTextColor@NmAttachmentListItem@@QAEXVQColor@@@Z @ 123 NONAME ; void NmAttachmentListItem::setTextColor(class QColor) + ??1NmAttachmentListItem@@UAE@XZ @ 124 NONAME ; NmAttachmentListItem::~NmAttachmentListItem(void) + ?count@NmAttachmentListWidget@@QBEHXZ @ 125 NONAME ; int NmAttachmentListWidget::count(void) const + ?tr@NmAttachmentListItem@@SA?AVQString@@PBD0H@Z @ 126 NONAME ; class QString NmAttachmentListItem::tr(char const *, char const *, int) + ?handleTextChanged@NmRecipientLineEdit@@AAEXABVQString@@@Z @ 127 NONAME ; void NmRecipientLineEdit::handleTextChanged(class QString const &) + ?document@NmHtmlLineEdit@@QBEPAVQTextDocument@@XZ @ 128 NONAME ; class QTextDocument * NmHtmlLineEdit::document(void) const + ?tr@NmHtmlLineEdit@@SA?AVQString@@PBD0@Z @ 129 NONAME ; class QString NmHtmlLineEdit::tr(char const *, char const *) + ?qt_metacall@NmHtmlLineEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 130 NONAME ; int NmHtmlLineEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@NmBaseViewScrollArea@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 131 NONAME ; int NmBaseViewScrollArea::qt_metacall(enum QMetaObject::Call, int, void * *) diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailuiwidgets/eabi/nmailuiwidgetsu.def --- a/emailuis/nmailuiwidgets/eabi/nmailuiwidgetsu.def Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailuiwidgets/eabi/nmailuiwidgetsu.def Tue Jun 29 17:12:28 2010 +0300 @@ -14,149 +14,150 @@ _ZN14NmHtmlLineEditD2Ev @ 13 NONAME _ZN16NmEditorTextEdit11qt_metacallEN11QMetaObject4CallEiPPv @ 14 NONAME _ZN16NmEditorTextEdit11qt_metacastEPKc @ 15 NONAME - _ZN16NmEditorTextEdit15rectForPositionEi @ 16 NONAME - _ZN16NmEditorTextEdit16staticMetaObjectE @ 17 NONAME DATA 16 - _ZN16NmEditorTextEdit18setCustomTextColorERK5QPairIb6QColorE @ 18 NONAME - _ZN16NmEditorTextEdit18setCustomTextColorEbRK6QColor @ 19 NONAME - _ZN16NmEditorTextEdit19getStaticMetaObjectEv @ 20 NONAME - _ZN16NmEditorTextEdit21updateCustomTextColorEv @ 21 NONAME - _ZN16NmEditorTextEditC1EP13QGraphicsItem @ 22 NONAME - _ZN16NmEditorTextEditC2EP13QGraphicsItem @ 23 NONAME - _ZN16NmEditorTextEditD0Ev @ 24 NONAME - _ZN16NmEditorTextEditD1Ev @ 25 NONAME - _ZN16NmEditorTextEditD2Ev @ 26 NONAME - _ZN19NmRecipientLineEdit11qt_metacallEN11QMetaObject4CallEiPPv @ 27 NONAME - _ZN19NmRecipientLineEdit11qt_metacastEPKc @ 28 NONAME - _ZN19NmRecipientLineEdit13keyPressEventEP9QKeyEvent @ 29 NONAME - _ZN19NmRecipientLineEdit16emailAddressListEv @ 30 NONAME - _ZN19NmRecipientLineEdit16inputMethodEventEP17QInputMethodEvent @ 31 NONAME - _ZN19NmRecipientLineEdit16staticMetaObjectE @ 32 NONAME DATA 16 - _ZN19NmRecipientLineEdit17handleTextChangedERK7QString @ 33 NONAME - _ZN19NmRecipientLineEdit19addSelectedContactsERK8QVariant @ 34 NONAME - _ZN19NmRecipientLineEdit19getStaticMetaObjectEv @ 35 NONAME - _ZN19NmRecipientLineEdit24generateEmailAddressListEv @ 36 NONAME - _ZN19NmRecipientLineEditC1EP13QGraphicsItem @ 37 NONAME - _ZN19NmRecipientLineEditC2EP13QGraphicsItem @ 38 NONAME - _ZN19NmRecipientLineEditD0Ev @ 39 NONAME - _ZN19NmRecipientLineEditD1Ev @ 40 NONAME - _ZN19NmRecipientLineEditD2Ev @ 41 NONAME - _ZN20NmAttachmentListItem11constructUiEv @ 42 NONAME - _ZN20NmAttachmentListItem11qt_metacallEN11QMetaObject4CallEiPPv @ 43 NONAME - _ZN20NmAttachmentListItem11qt_metacastEPKc @ 44 NONAME - _ZN20NmAttachmentListItem12gestureEventEP13QGestureEvent @ 45 NONAME - _ZN20NmAttachmentListItem12setTextColorE6QColor @ 46 NONAME - _ZN20NmAttachmentListItem13itemActivatedEv @ 47 NONAME - _ZN20NmAttachmentListItem15hideProgressBarEv @ 48 NONAME - _ZN20NmAttachmentListItem15itemLongPressedE7QPointF @ 49 NONAME - _ZN20NmAttachmentListItem15setFileNameTextERK7QString @ 50 NONAME - _ZN20NmAttachmentListItem15setFileSizeTextERK7QString @ 51 NONAME - _ZN20NmAttachmentListItem16staticMetaObjectE @ 52 NONAME DATA 16 - _ZN20NmAttachmentListItem17removeProgressBarEv @ 53 NONAME - _ZN20NmAttachmentListItem19getStaticMetaObjectEv @ 54 NONAME - _ZN20NmAttachmentListItem19setProgressBarValueEi @ 55 NONAME - _ZN20NmAttachmentListItem4initEv @ 56 NONAME - _ZN20NmAttachmentListItemC1EP13QGraphicsItem @ 57 NONAME - _ZN20NmAttachmentListItemC2EP13QGraphicsItem @ 58 NONAME - _ZN20NmAttachmentListItemD0Ev @ 59 NONAME - _ZN20NmAttachmentListItemD1Ev @ 60 NONAME - _ZN20NmAttachmentListItemD2Ev @ 61 NONAME - _ZN20NmBaseViewScrollArea11qt_metacallEN11QMetaObject4CallEiPPv @ 62 NONAME - _ZN20NmBaseViewScrollArea11qt_metacastEPKc @ 63 NONAME - _ZN20NmBaseViewScrollArea14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 64 NONAME - _ZN20NmBaseViewScrollArea15mousePressEventEP24QGraphicsSceneMouseEvent @ 65 NONAME - _ZN20NmBaseViewScrollArea16longPressGestureERK7QPointF @ 66 NONAME - _ZN20NmBaseViewScrollArea16staticMetaObjectE @ 67 NONAME DATA 16 - _ZN20NmBaseViewScrollArea17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 68 NONAME - _ZN20NmBaseViewScrollArea19getStaticMetaObjectEv @ 69 NONAME - _ZN20NmBaseViewScrollArea20handleMouseMoveEventEP24QGraphicsSceneMouseEvent @ 70 NONAME - _ZN20NmBaseViewScrollArea21handleMousePressEventEP24QGraphicsSceneMouseEvent @ 71 NONAME - _ZN20NmBaseViewScrollArea22handleLongPressGestureERK7QPointF @ 72 NONAME - _ZN20NmBaseViewScrollArea23handleMouseReleaseEventEP24QGraphicsSceneMouseEvent @ 73 NONAME - _ZN20NmBaseViewScrollAreaC1EP13QGraphicsItem @ 74 NONAME - _ZN20NmBaseViewScrollAreaC2EP13QGraphicsItem @ 75 NONAME - _ZN20NmBaseViewScrollAreaD0Ev @ 76 NONAME - _ZN20NmBaseViewScrollAreaD1Ev @ 77 NONAME - _ZN20NmBaseViewScrollAreaD2Ev @ 78 NONAME - _ZN22NmAttachmentListWidget11constructUiEv @ 79 NONAME - _ZN22NmAttachmentListWidget11longPressedEi7QPointF @ 80 NONAME - _ZN22NmAttachmentListWidget11qt_metacallEN11QMetaObject4CallEiPPv @ 81 NONAME - _ZN22NmAttachmentListWidget11qt_metacastEPKc @ 82 NONAME - _ZN22NmAttachmentListWidget12setTextColorE6QColor @ 83 NONAME - _ZN22NmAttachmentListWidget13itemActivatedEi @ 84 NONAME - _ZN22NmAttachmentListWidget15hideProgressBarEi @ 85 NONAME - _ZN22NmAttachmentListWidget15rearrangeLayoutEv @ 86 NONAME - _ZN22NmAttachmentListWidget16insertAttachmentEiRK7QStringS2_ @ 87 NONAME - _ZN22NmAttachmentListWidget16removeAttachmentEi @ 88 NONAME - _ZN22NmAttachmentListWidget16staticMetaObjectE @ 89 NONAME DATA 16 - _ZN22NmAttachmentListWidget17handleLongPressedE7QPointF @ 90 NONAME - _ZN22NmAttachmentListWidget17setAttachmentSizeEiRK7QString @ 91 NONAME - _ZN22NmAttachmentListWidget18insertItemToLayoutEP20NmAttachmentListItem @ 92 NONAME - _ZN22NmAttachmentListWidget18orientationChangedEN2Qt11OrientationE @ 93 NONAME - _ZN22NmAttachmentListWidget19getStaticMetaObjectEv @ 94 NONAME - _ZN22NmAttachmentListWidget19handleItemActivatedEv @ 95 NONAME - _ZN22NmAttachmentListWidget19setProgressBarValueEii @ 96 NONAME - _ZN22NmAttachmentListWidget4initEv @ 97 NONAME - _ZN22NmAttachmentListWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 98 NONAME - _ZN22NmAttachmentListWidget8findItemEPK7QObject @ 99 NONAME - _ZN22NmAttachmentListWidgetC1EP13QGraphicsItem @ 100 NONAME - _ZN22NmAttachmentListWidgetC2EP13QGraphicsItem @ 101 NONAME - _ZN22NmAttachmentListWidgetD0Ev @ 102 NONAME - _ZN22NmAttachmentListWidgetD1Ev @ 103 NONAME - _ZN22NmAttachmentListWidgetD2Ev @ 104 NONAME - _ZNK14NmHtmlLineEdit10metaObjectEv @ 105 NONAME - _ZNK14NmHtmlLineEdit10textCursorEv @ 106 NONAME - _ZNK14NmHtmlLineEdit11toPlainTextEv @ 107 NONAME + _ZN16NmEditorTextEdit16staticMetaObjectE @ 16 NONAME DATA 16 + _ZN16NmEditorTextEdit18setCustomTextColorERK5QPairIb6QColorE @ 17 NONAME + _ZN16NmEditorTextEdit18setCustomTextColorEbRK6QColor @ 18 NONAME + _ZN16NmEditorTextEdit19getStaticMetaObjectEv @ 19 NONAME + _ZN16NmEditorTextEdit21updateCustomTextColorEv @ 20 NONAME + _ZN16NmEditorTextEditC1EP13QGraphicsItem @ 21 NONAME + _ZN16NmEditorTextEditC2EP13QGraphicsItem @ 22 NONAME + _ZN16NmEditorTextEditD0Ev @ 23 NONAME + _ZN16NmEditorTextEditD1Ev @ 24 NONAME + _ZN16NmEditorTextEditD2Ev @ 25 NONAME + _ZN19NmRecipientLineEdit11qt_metacallEN11QMetaObject4CallEiPPv @ 26 NONAME + _ZN19NmRecipientLineEdit11qt_metacastEPKc @ 27 NONAME + _ZN19NmRecipientLineEdit13keyPressEventEP9QKeyEvent @ 28 NONAME + _ZN19NmRecipientLineEdit16emailAddressListEv @ 29 NONAME + _ZN19NmRecipientLineEdit16inputMethodEventEP17QInputMethodEvent @ 30 NONAME + _ZN19NmRecipientLineEdit16staticMetaObjectE @ 31 NONAME DATA 16 + _ZN19NmRecipientLineEdit17handleTextChangedERK7QString @ 32 NONAME + _ZN19NmRecipientLineEdit19addSelectedContactsERK8QVariant @ 33 NONAME + _ZN19NmRecipientLineEdit19getStaticMetaObjectEv @ 34 NONAME + _ZN19NmRecipientLineEdit24generateEmailAddressListEv @ 35 NONAME + _ZN19NmRecipientLineEditC1EP13QGraphicsItem @ 36 NONAME + _ZN19NmRecipientLineEditC2EP13QGraphicsItem @ 37 NONAME + _ZN19NmRecipientLineEditD0Ev @ 38 NONAME + _ZN19NmRecipientLineEditD1Ev @ 39 NONAME + _ZN19NmRecipientLineEditD2Ev @ 40 NONAME + _ZN20NmAttachmentListItem11constructUiEv @ 41 NONAME + _ZN20NmAttachmentListItem11qt_metacallEN11QMetaObject4CallEiPPv @ 42 NONAME + _ZN20NmAttachmentListItem11qt_metacastEPKc @ 43 NONAME + _ZN20NmAttachmentListItem12gestureEventEP13QGestureEvent @ 44 NONAME + _ZN20NmAttachmentListItem12setTextColorE6QColor @ 45 NONAME + _ZN20NmAttachmentListItem13itemActivatedEv @ 46 NONAME + _ZN20NmAttachmentListItem15hideProgressBarEv @ 47 NONAME + _ZN20NmAttachmentListItem15itemLongPressedE7QPointF @ 48 NONAME + _ZN20NmAttachmentListItem15setFileNameTextERK7QString @ 49 NONAME + _ZN20NmAttachmentListItem15setFileSizeTextERK7QString @ 50 NONAME + _ZN20NmAttachmentListItem16staticMetaObjectE @ 51 NONAME DATA 16 + _ZN20NmAttachmentListItem17removeProgressBarEv @ 52 NONAME + _ZN20NmAttachmentListItem19getStaticMetaObjectEv @ 53 NONAME + _ZN20NmAttachmentListItem19setProgressBarValueEi @ 54 NONAME + _ZN20NmAttachmentListItem4initEv @ 55 NONAME + _ZN20NmAttachmentListItemC1EP13QGraphicsItem @ 56 NONAME + _ZN20NmAttachmentListItemC2EP13QGraphicsItem @ 57 NONAME + _ZN20NmAttachmentListItemD0Ev @ 58 NONAME + _ZN20NmAttachmentListItemD1Ev @ 59 NONAME + _ZN20NmAttachmentListItemD2Ev @ 60 NONAME + _ZN20NmBaseViewScrollArea11qt_metacallEN11QMetaObject4CallEiPPv @ 61 NONAME + _ZN20NmBaseViewScrollArea11qt_metacastEPKc @ 62 NONAME + _ZN20NmBaseViewScrollArea14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 63 NONAME + _ZN20NmBaseViewScrollArea15mousePressEventEP24QGraphicsSceneMouseEvent @ 64 NONAME + _ZN20NmBaseViewScrollArea16longPressGestureERK7QPointF @ 65 NONAME + _ZN20NmBaseViewScrollArea16staticMetaObjectE @ 66 NONAME DATA 16 + _ZN20NmBaseViewScrollArea17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 67 NONAME + _ZN20NmBaseViewScrollArea19getStaticMetaObjectEv @ 68 NONAME + _ZN20NmBaseViewScrollArea20handleMouseMoveEventEP24QGraphicsSceneMouseEvent @ 69 NONAME + _ZN20NmBaseViewScrollArea21handleMousePressEventEP24QGraphicsSceneMouseEvent @ 70 NONAME + _ZN20NmBaseViewScrollArea22handleLongPressGestureERK7QPointF @ 71 NONAME + _ZN20NmBaseViewScrollArea23handleMouseReleaseEventEP24QGraphicsSceneMouseEvent @ 72 NONAME + _ZN20NmBaseViewScrollAreaC1EP13QGraphicsItem @ 73 NONAME + _ZN20NmBaseViewScrollAreaC2EP13QGraphicsItem @ 74 NONAME + _ZN20NmBaseViewScrollAreaD0Ev @ 75 NONAME + _ZN20NmBaseViewScrollAreaD1Ev @ 76 NONAME + _ZN20NmBaseViewScrollAreaD2Ev @ 77 NONAME + _ZN22NmAttachmentListWidget11constructUiEv @ 78 NONAME + _ZN22NmAttachmentListWidget11longPressedEi7QPointF @ 79 NONAME + _ZN22NmAttachmentListWidget11qt_metacallEN11QMetaObject4CallEiPPv @ 80 NONAME + _ZN22NmAttachmentListWidget11qt_metacastEPKc @ 81 NONAME + _ZN22NmAttachmentListWidget12setTextColorE6QColor @ 82 NONAME + _ZN22NmAttachmentListWidget13itemActivatedEi @ 83 NONAME + _ZN22NmAttachmentListWidget15hideProgressBarEi @ 84 NONAME + _ZN22NmAttachmentListWidget15rearrangeLayoutEv @ 85 NONAME + _ZN22NmAttachmentListWidget16insertAttachmentEiRK7QStringS2_ @ 86 NONAME + _ZN22NmAttachmentListWidget16removeAttachmentEi @ 87 NONAME + _ZN22NmAttachmentListWidget16staticMetaObjectE @ 88 NONAME DATA 16 + _ZN22NmAttachmentListWidget17handleLongPressedE7QPointF @ 89 NONAME + _ZN22NmAttachmentListWidget17setAttachmentSizeEiRK7QString @ 90 NONAME + _ZN22NmAttachmentListWidget18insertItemToLayoutEP20NmAttachmentListItem @ 91 NONAME + _ZN22NmAttachmentListWidget18orientationChangedEN2Qt11OrientationE @ 92 NONAME + _ZN22NmAttachmentListWidget19getStaticMetaObjectEv @ 93 NONAME + _ZN22NmAttachmentListWidget19handleItemActivatedEv @ 94 NONAME + _ZN22NmAttachmentListWidget19setProgressBarValueEii @ 95 NONAME + _ZN22NmAttachmentListWidget4initEv @ 96 NONAME + _ZN22NmAttachmentListWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 97 NONAME + _ZN22NmAttachmentListWidget8findItemEPK7QObject @ 98 NONAME + _ZN22NmAttachmentListWidgetC1EP13QGraphicsItem @ 99 NONAME + _ZN22NmAttachmentListWidgetC2EP13QGraphicsItem @ 100 NONAME + _ZN22NmAttachmentListWidgetD0Ev @ 101 NONAME + _ZN22NmAttachmentListWidgetD1Ev @ 102 NONAME + _ZN22NmAttachmentListWidgetD2Ev @ 103 NONAME + _ZNK14NmHtmlLineEdit10metaObjectEv @ 104 NONAME + _ZNK14NmHtmlLineEdit10textCursorEv @ 105 NONAME + _ZNK14NmHtmlLineEdit11toPlainTextEv @ 106 NONAME + _ZNK14NmHtmlLineEdit21rectForCursorPositionEv @ 107 NONAME _ZNK14NmHtmlLineEdit6toHtmlEv @ 108 NONAME _ZNK14NmHtmlLineEdit8documentEv @ 109 NONAME _ZNK16NmEditorTextEdit10metaObjectEv @ 110 NONAME _ZNK16NmEditorTextEdit15customTextColorEv @ 111 NONAME - _ZNK19NmRecipientLineEdit10metaObjectEv @ 112 NONAME - _ZNK20NmAttachmentListItem10metaObjectEv @ 113 NONAME - _ZNK20NmAttachmentListItem16progressBarValueEv @ 114 NONAME - _ZNK20NmBaseViewScrollArea10metaObjectEv @ 115 NONAME - _ZNK22NmAttachmentListWidget10metaObjectEv @ 116 NONAME - _ZNK22NmAttachmentListWidget13progressValueEi @ 117 NONAME - _ZNK22NmAttachmentListWidget5countEv @ 118 NONAME - _ZTI14NmHtmlLineEdit @ 119 NONAME - _ZTI16NmEditorTextEdit @ 120 NONAME - _ZTI19NmRecipientLineEdit @ 121 NONAME - _ZTI20NmAttachmentListItem @ 122 NONAME - _ZTI20NmBaseViewScrollArea @ 123 NONAME - _ZTI22NmAttachmentListWidget @ 124 NONAME - _ZTV14NmHtmlLineEdit @ 125 NONAME - _ZTV16NmEditorTextEdit @ 126 NONAME - _ZTV19NmRecipientLineEdit @ 127 NONAME - _ZTV20NmAttachmentListItem @ 128 NONAME - _ZTV20NmBaseViewScrollArea @ 129 NONAME - _ZTV22NmAttachmentListWidget @ 130 NONAME - _ZThn16_N14NmHtmlLineEditD0Ev @ 131 NONAME - _ZThn16_N14NmHtmlLineEditD1Ev @ 132 NONAME - _ZThn16_N16NmEditorTextEditD0Ev @ 133 NONAME - _ZThn16_N16NmEditorTextEditD1Ev @ 134 NONAME - _ZThn16_N19NmRecipientLineEditD0Ev @ 135 NONAME - _ZThn16_N19NmRecipientLineEditD1Ev @ 136 NONAME - _ZThn16_N20NmAttachmentListItemD0Ev @ 137 NONAME - _ZThn16_N20NmAttachmentListItemD1Ev @ 138 NONAME - _ZThn16_N20NmBaseViewScrollAreaD0Ev @ 139 NONAME - _ZThn16_N20NmBaseViewScrollAreaD1Ev @ 140 NONAME - _ZThn16_N22NmAttachmentListWidgetD0Ev @ 141 NONAME - _ZThn16_N22NmAttachmentListWidgetD1Ev @ 142 NONAME - _ZThn8_N14NmHtmlLineEditD0Ev @ 143 NONAME - _ZThn8_N14NmHtmlLineEditD1Ev @ 144 NONAME - _ZThn8_N16NmEditorTextEditD0Ev @ 145 NONAME - _ZThn8_N16NmEditorTextEditD1Ev @ 146 NONAME - _ZThn8_N19NmRecipientLineEdit13keyPressEventEP9QKeyEvent @ 147 NONAME - _ZThn8_N19NmRecipientLineEdit16inputMethodEventEP17QInputMethodEvent @ 148 NONAME - _ZThn8_N19NmRecipientLineEditD0Ev @ 149 NONAME - _ZThn8_N19NmRecipientLineEditD1Ev @ 150 NONAME - _ZThn8_N20NmAttachmentListItemD0Ev @ 151 NONAME - _ZThn8_N20NmAttachmentListItemD1Ev @ 152 NONAME - _ZThn8_N20NmBaseViewScrollArea14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 153 NONAME - _ZThn8_N20NmBaseViewScrollArea15mousePressEventEP24QGraphicsSceneMouseEvent @ 154 NONAME - _ZThn8_N20NmBaseViewScrollArea17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 155 NONAME - _ZThn8_N20NmBaseViewScrollAreaD0Ev @ 156 NONAME - _ZThn8_N20NmBaseViewScrollAreaD1Ev @ 157 NONAME - _ZThn8_N22NmAttachmentListWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 158 NONAME - _ZThn8_N22NmAttachmentListWidgetD0Ev @ 159 NONAME - _ZThn8_N22NmAttachmentListWidgetD1Ev @ 160 NONAME + _ZNK16NmEditorTextEdit21rectForCursorPositionEv @ 112 NONAME + _ZNK19NmRecipientLineEdit10metaObjectEv @ 113 NONAME + _ZNK20NmAttachmentListItem10metaObjectEv @ 114 NONAME + _ZNK20NmAttachmentListItem16progressBarValueEv @ 115 NONAME + _ZNK20NmBaseViewScrollArea10metaObjectEv @ 116 NONAME + _ZNK22NmAttachmentListWidget10metaObjectEv @ 117 NONAME + _ZNK22NmAttachmentListWidget13progressValueEi @ 118 NONAME + _ZNK22NmAttachmentListWidget5countEv @ 119 NONAME + _ZTI14NmHtmlLineEdit @ 120 NONAME + _ZTI16NmEditorTextEdit @ 121 NONAME + _ZTI19NmRecipientLineEdit @ 122 NONAME + _ZTI20NmAttachmentListItem @ 123 NONAME + _ZTI20NmBaseViewScrollArea @ 124 NONAME + _ZTI22NmAttachmentListWidget @ 125 NONAME + _ZTV14NmHtmlLineEdit @ 126 NONAME + _ZTV16NmEditorTextEdit @ 127 NONAME + _ZTV19NmRecipientLineEdit @ 128 NONAME + _ZTV20NmAttachmentListItem @ 129 NONAME + _ZTV20NmBaseViewScrollArea @ 130 NONAME + _ZTV22NmAttachmentListWidget @ 131 NONAME + _ZThn16_N14NmHtmlLineEditD0Ev @ 132 NONAME + _ZThn16_N14NmHtmlLineEditD1Ev @ 133 NONAME + _ZThn16_N16NmEditorTextEditD0Ev @ 134 NONAME + _ZThn16_N16NmEditorTextEditD1Ev @ 135 NONAME + _ZThn16_N19NmRecipientLineEditD0Ev @ 136 NONAME + _ZThn16_N19NmRecipientLineEditD1Ev @ 137 NONAME + _ZThn16_N20NmAttachmentListItemD0Ev @ 138 NONAME + _ZThn16_N20NmAttachmentListItemD1Ev @ 139 NONAME + _ZThn16_N20NmBaseViewScrollAreaD0Ev @ 140 NONAME + _ZThn16_N20NmBaseViewScrollAreaD1Ev @ 141 NONAME + _ZThn16_N22NmAttachmentListWidgetD0Ev @ 142 NONAME + _ZThn16_N22NmAttachmentListWidgetD1Ev @ 143 NONAME + _ZThn8_N14NmHtmlLineEditD0Ev @ 144 NONAME + _ZThn8_N14NmHtmlLineEditD1Ev @ 145 NONAME + _ZThn8_N16NmEditorTextEditD0Ev @ 146 NONAME + _ZThn8_N16NmEditorTextEditD1Ev @ 147 NONAME + _ZThn8_N19NmRecipientLineEdit13keyPressEventEP9QKeyEvent @ 148 NONAME + _ZThn8_N19NmRecipientLineEdit16inputMethodEventEP17QInputMethodEvent @ 149 NONAME + _ZThn8_N19NmRecipientLineEditD0Ev @ 150 NONAME + _ZThn8_N19NmRecipientLineEditD1Ev @ 151 NONAME + _ZThn8_N20NmAttachmentListItemD0Ev @ 152 NONAME + _ZThn8_N20NmAttachmentListItemD1Ev @ 153 NONAME + _ZThn8_N20NmBaseViewScrollArea14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 154 NONAME + _ZThn8_N20NmBaseViewScrollArea15mousePressEventEP24QGraphicsSceneMouseEvent @ 155 NONAME + _ZThn8_N20NmBaseViewScrollArea17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 156 NONAME + _ZThn8_N20NmBaseViewScrollAreaD0Ev @ 157 NONAME + _ZThn8_N20NmBaseViewScrollAreaD1Ev @ 158 NONAME + _ZThn8_N22NmAttachmentListWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 159 NONAME + _ZThn8_N22NmAttachmentListWidgetD0Ev @ 160 NONAME + _ZThn8_N22NmAttachmentListWidgetD1Ev @ 161 NONAME diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailuiwidgets/inc/nmeditortextedit.h --- a/emailuis/nmailuiwidgets/inc/nmeditortextedit.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailuiwidgets/inc/nmeditortextedit.h Tue Jun 29 17:12:28 2010 +0300 @@ -33,7 +33,7 @@ void setCustomTextColor(bool useCustom, const QColor& color = Qt::black); QPair customTextColor() const; - QRectF rectForPosition(int position); + QRectF rectForCursorPosition() const; public slots: void updateCustomTextColor(); diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailuiwidgets/inc/nmhtmllineedit.h --- a/emailuis/nmailuiwidgets/inc/nmhtmllineedit.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailuiwidgets/inc/nmhtmllineedit.h Tue Jun 29 17:12:28 2010 +0300 @@ -38,6 +38,8 @@ QString toPlainText() const; QString toHtml() const; + QRectF rectForCursorPosition() const; + public slots: void setPlainText(const QString &text); void setHtml(const QString &text); diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailuiwidgets/src/nmattachmentlistwidget.cpp --- a/emailuis/nmailuiwidgets/src/nmattachmentlistwidget.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailuiwidgets/src/nmattachmentlistwidget.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -346,8 +346,7 @@ loader.setObjectTree(objectList); QObjectList widgetlist = loader.load(FILE_PATH_DOCML, &loadingOk); - int widgetCount = widgetlist.count(); - if(loadingOk && widgetCount){ + if(loadingOk){ if(layout()){ mLayout = dynamic_cast(layout()); mLayout->setContentsMargins(0,0,0,0); diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailuiwidgets/src/nmeditortextedit.cpp --- a/emailuis/nmailuiwidgets/src/nmeditortextedit.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailuiwidgets/src/nmeditortextedit.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -33,9 +33,9 @@ mCustomTextColor = QPair(false, Qt::black); - // Enable scrolling using cursor - setScrollable(true); - scrollArea()->setScrollDirections(Qt::Horizontal); + // Disable HbTextEdit scrolling. Background scroll area will handle scrolling. + setScrollable(false); + scrollArea()->setScrollDirections(0); // set background colour to plain white QPixmap whitePixmap(10,10); @@ -46,6 +46,22 @@ // disables highlight frame for now - new api to set the frame item should be release somewhere wk26 setFocusHighlight(HbStyle::P_TextEdit_frame_highlight, HbWidget::FocusHighlightNone); + // Create custom palette based on the current one + QPalette testPalette = QApplication::palette(); + + // Sets the selection background colour + testPalette.setColor(QPalette::Active, QPalette::Highlight, Qt::cyan); + testPalette.setColor(QPalette::Inactive, QPalette::Highlight, Qt::cyan); + + // Sets the link and visited link colours + testPalette.setColor(QPalette::Active, QPalette::Link, Qt::darkBlue); + testPalette.setColor(QPalette::Inactive, QPalette::Link, Qt::darkBlue); + testPalette.setColor(QPalette::Active, QPalette::LinkVisited, Qt::darkMagenta); + testPalette.setColor(QPalette::Inactive, QPalette::LinkVisited, Qt::darkMagenta); + + // Update custom palette for this widget + setPalette(testPalette); + connect(this, SIGNAL(contentsChanged()), this, SLOT(updateCustomTextColor())); } @@ -135,10 +151,12 @@ } /*! - * Returns the calculated rect in item coordinates of the editor for the the given \a position inside a document. + * Returns the rectangle for the cursor. */ -QRectF NmEditorTextEdit::rectForPosition(int position) +QRectF NmEditorTextEdit::rectForCursorPosition() const { - return HbTextEdit::rectForPosition(position); + NM_FUNCTION; + + return HbTextEdit::rectForPosition(cursorPosition()); } diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailuiwidgets/src/nmhtmllineedit.cpp --- a/emailuis/nmailuiwidgets/src/nmhtmllineedit.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailuiwidgets/src/nmhtmllineedit.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -26,6 +26,10 @@ HbLineEdit(parent) { NM_FUNCTION; + + // Disable scrolling so that baunch effect works correctly + HbAbstractEdit::setScrollable(false); + HbAbstractEdit::scrollArea()->setScrollDirections(0); } /*! @@ -96,3 +100,13 @@ HbAbstractEdit::setPlainText(text); } + +/*! + * Returns the rectangle for the cursor. + */ +QRectF NmHtmlLineEdit::rectForCursorPosition() const +{ + NM_FUNCTION; + + return HbLineEdit::rectForPosition(cursorPosition()); +} diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmailuiwidgets/src/nmrecipientlineedit.cpp --- a/emailuis/nmailuiwidgets/src/nmrecipientlineedit.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmailuiwidgets/src/nmrecipientlineedit.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -132,7 +132,7 @@ // Add this NmAddress formated contact into mRecipientsAddedFromContacts. mRecipientsAddedFromContacts.append(contact); - } // end of for (int i = 0; i < contactList.count(); ++i) + } } else { //Request returned NULL diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmsettingui/inc/nmmailboxsettingview.h --- a/emailuis/nmsettingui/inc/nmmailboxsettingview.h Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmsettingui/inc/nmmailboxsettingview.h Tue Jun 29 17:12:28 2010 +0300 @@ -42,6 +42,7 @@ ~NmMailboxSettingView(); + NmId mailboxId(); private slots: diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmsettingui/src/nmmailboxsettingview.cpp --- a/emailuis/nmsettingui/src/nmmailboxsettingview.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmsettingui/src/nmmailboxsettingview.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -103,11 +103,7 @@ { NM_FUNCTION; - if (mForm) { - mForm->removeAllConnection(); - delete mForm; - } - + delete mForm; delete mModel; } @@ -159,5 +155,12 @@ } } +/*! + Returns the mailbox id for this mailbox setting view. +*/ +NmId NmMailboxSettingView::mailboxId() +{ + return mMailboxId; +} // End of file. diff -r f83bd4ae1fe3 -r 10eaf342f539 emailuis/nmsettingui/src/nmsettingsviewfactory.cpp --- a/emailuis/nmsettingui/src/nmsettingsviewfactory.cpp Thu Jun 24 14:32:18 2010 +0300 +++ b/emailuis/nmsettingui/src/nmsettingsviewfactory.cpp Tue Jun 29 17:12:28 2010 +0300 @@ -180,68 +180,74 @@ // There's always at least one valid main window available. HbMainWindow *mainWindow = hbInstance->allMainWindows().takeFirst(); - CpBaseSettingView *view = - new NmMailboxSettingView(mailboxId, mailboxName, *mSettingsManager); - - connect(mSettingsManager, - SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)), - view, SLOT(mailboxListChanged(const NmId &, NmSettings::MailboxEventType))); - - connect(mSettingsManager, - SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)), - view, SLOT(mailboxPropertyChanged(const NmId &, QVariant, QVariant))); - - // Disconnect mSettingsViewLauncher's previous connections to be sure that signals which are - // offered out will be sent last. - mSettingsManager->disconnect( - SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)), - mSettingsViewLauncher, - SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType))); - - mSettingsManager->disconnect( - SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)), - mSettingsViewLauncher, - SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant))); - - - // Reconnect mSettingsViewLauncher. - connect(mSettingsManager, - SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)), - mSettingsViewLauncher, - SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType))); - - connect(mSettingsManager, - SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)), - mSettingsViewLauncher, - SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant))); - - connect(mSettingsManager, - SIGNAL(goOnline(const NmId &)), - mSettingsViewLauncher, - SIGNAL(goOnline(const NmId &)), Qt::UniqueConnection); - - connect(mSettingsManager, - SIGNAL(goOffline(const NmId &)), - mSettingsViewLauncher, - SIGNAL(goOffline(const NmId &)), Qt::UniqueConnection); - - connect(this, - SIGNAL(aboutToClose()), - mSettingsManager, - SIGNAL(aboutToClose()), Qt::UniqueConnection); - - // Create back navigation action for a view. - HbAction *action = new HbAction(Hb::BackNaviAction, view); - connect(action, SIGNAL(triggered()), this, SLOT(backPress())); - view->setNavigationAction(action); - mPrevView = mainWindow->currentView(); - mainWindow->addView(view); - mainWindow->setCurrentView(view); + NmMailboxSettingView *currentSettingsView = + qobject_cast(mainWindow->currentView()); + + // Let's have only one same settings view at a time open, + // but if some other mailboxes settings view want's to open while + // there is a settings view open let's open it also. + if (!currentSettingsView || (currentSettingsView->mailboxId().id() != mailboxId.id())) { + CpBaseSettingView *view = + new NmMailboxSettingView(mailboxId, mailboxName, *mSettingsManager); + + connect(mSettingsManager, + SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)), + view, SLOT(mailboxListChanged(const NmId &, NmSettings::MailboxEventType))); + + connect(mSettingsManager, + SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)), + view, SLOT(mailboxPropertyChanged(const NmId &, QVariant, QVariant))); + + // Disconnect mSettingsViewLauncher's previous connections to + // be sure that signals which are offered out will be sent last. + mSettingsManager->disconnect( + SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)), + mSettingsViewLauncher, + SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType))); + + mSettingsManager->disconnect( + SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)), + mSettingsViewLauncher, + SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant))); + + // Reconnect mSettingsViewLauncher. + connect(mSettingsManager, + SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType)), + mSettingsViewLauncher, + SIGNAL(mailboxListChanged(const NmId &, NmSettings::MailboxEventType))); + + connect(mSettingsManager, + SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant)), + mSettingsViewLauncher, + SIGNAL(mailboxPropertyChanged(const NmId &, QVariant, QVariant))); + + connect(mSettingsManager, + SIGNAL(goOnline(const NmId &)), + mSettingsViewLauncher, + SIGNAL(goOnline(const NmId &)), Qt::UniqueConnection); + + connect(mSettingsManager, + SIGNAL(goOffline(const NmId &)), + mSettingsViewLauncher, + SIGNAL(goOffline(const NmId &)), Qt::UniqueConnection); + + connect(this, + SIGNAL(aboutToClose()), + mSettingsManager, + SIGNAL(aboutToClose()), Qt::UniqueConnection); + + // Create back navigation action for a view. + HbAction *action = new HbAction(Hb::BackNaviAction, view); + connect(action, SIGNAL(triggered()), this, SLOT(backPress())); + view->setNavigationAction(action); + mPrevView = mainWindow->currentView(); + mainWindow->addView(view); + mainWindow->setCurrentView(view); + } } - /*! - Handles back button press. + Handels back button press. Removes the current view from the main window and activates the previous view. Destroys removed view. */ diff -r f83bd4ae1fe3 -r 10eaf342f539 nmail.pro --- a/nmail.pro Thu Jun 24 14:32:18 2010 +0300 +++ b/nmail.pro Tue Jun 29 17:12:28 2010 +0300 @@ -17,19 +17,9 @@ TEMPLATE = subdirs -win32: { - SUBDIRS = \ - emailservices/nmailbase \ - emailuis/nmailuiengine \ - emailuis/nmailuiwidgets \ - emailuis/nmailuiwidgetsplugin \ - emailuis/nmailuiengine/tsrc/nmtestplugin \ - emailuis/nmailuiengine/tsrc/nmtestpluginextension \ - emailuis/nmailui -} - symbian*: { SUBDIRS = \ + email_plat \ emailservices/nmailbase \ emailuis/nmailuiengine \ emailuis/nmailuiwidgets \ @@ -46,7 +36,6 @@ emailuis/nmframeworkadapter \ emailservices/nmclientapi \ emailservices/nmailagent \ - email_plat \ emailservices/nmregister \ emailuis/nmhswidget \ emailuis/nmhswidget/tsrc/nmhswidgettestapp \