--- a/emailservices/emailclientapi/src/emailfolder.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailclientapi/src/emailfolder.cpp Tue May 11 15:57:15 2010 +0300
@@ -178,11 +178,13 @@
const CFSMailFolder* fsfolder = folders[i];
const TEntryId id = fsfolder->GetFolderId().Id();
const TFolderId folderId( id, iFolderId.iMailboxId.iId );
- MEmailFolder* folder = CEmailFolder::NewL( iPluginData, folderId, folders[i]);
+ MEmailFolder* folder = CEmailFolder::NewLC( iPluginData, folderId, folders[i]);
aSubfolders.AppendL( folder );
+ CleanupStack::Pop( folder ); // asubfolders took ownership
+ folders[i] = NULL;
}
- CleanupStack::Pop(); // folders
- folders.Close();
+ CleanupStack::Pop( &folders ); // folders
+ folders.Close(); // aSubfolders took ownership
return res;
}
--- a/emailservices/emailclientapi/src/emailmailbox.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailclientapi/src/emailmailbox.cpp Tue May 11 15:57:15 2010 +0300
@@ -243,7 +243,11 @@
EFSMsgDataEnvelope);
CleanupStack::PushL( fsMessage );
- CEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
+
+ CEmailMessage* message = NULL;
+
+ if ( fsMessage )
+ message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
CleanupStack::Pop(); // fsMessage
return message;
--- a/emailservices/emailclientapi/src/emailmessage.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailclientapi/src/emailmessage.cpp Tue May 11 15:57:15 2010 +0300
@@ -505,12 +505,12 @@
RPointerArray<CFSMailMessagePart> parts;
CleanupResetAndDestroyPushL( parts );
- iPluginMessage->ChildPartsL(parts);
+ iPluginMessage->ChildPartsL( parts );
TInt count( parts.Count() );
if( count == 0 )
{
/* No content, return NULL */
- CleanupStack::Pop(); // parts
+ CleanupStack::PopAndDestroy( &parts ); // in case heap allocated but not used
return NULL;
}
CFSMailMessagePart* part = parts[0];
@@ -524,7 +524,8 @@
if ( contentType.Equals( KFSMailContentTypeTextPlain ) ||
contentType.Equals( KFSMailContentTypeTextHtml ) )
{
- iTextContent = CEmailTextContent::NewL(iPluginData, msgContentId, part, EAPIOwns );
+ iTextContent = CEmailTextContent::NewL(iPluginData, msgContentId, part, EAPIOwns );
+ parts[0] = NULL; // ownership of part transferred
}
else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) ||
contentType.Equals( KFSMailContentTypeMultipartAlternative ) ||
@@ -533,13 +534,10 @@
contentType.Equals( KFSMailContentTypeMultipartParallel ) )
{
iContent = CEmailMultipart::NewL(iPluginData, msgContentId, part, EAPIOwns);
+ parts[0] = NULL; // ownership of part transferred
}
- if ( count == 2 )
- {
- CFSMailMessagePart* part = parts[1];
- const TDesC& contentType = part->GetContentType();
- }
- CleanupStack::Pop(); // parts
+
+ CleanupStack::PopAndDestroy( &parts ); // parts
if (iTextContent)
{
--- a/emailservices/emailclientapi/src/emailmessagesearch.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailclientapi/src/emailmessagesearch.cpp Tue May 11 15:57:15 2010 +0300
@@ -226,6 +226,7 @@
iObserver = &aObserver;
const TFSMailMsgId fsMailboxId( iPluginData.Uid(), iMailboxId.iId );
RArray <TFSMailMsgId> folderIds;
+ CleanupClosePushL( folderIds );
/** Search API */
@@ -263,6 +264,7 @@
*this );
// Gate is kept closed as search is asynchronous. Gate will be reopen after search is completed, i.e.
// CEmailMessageSearchAsync::SearchCompleted.
+ CleanupStack::PopAndDestroy( &folderIds );
}
/**
@@ -359,7 +361,7 @@
/**
* Asks client if search engine should change search priority
*/
-void CEmailMessageSearchAsync::ClientRequiredSearchPriority(TInt *apRequiredSearchPriority)
+void CEmailMessageSearchAsync::ClientRequiredSearchPriority(TInt * /* apRequiredSearchPriority */ )
{
return;
}
--- a/emailservices/emailframework/commonlib/src/CFSMailBox.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailframework/commonlib/src/CFSMailBox.cpp Tue May 11 15:57:15 2010 +0300
@@ -439,7 +439,7 @@
// remove outbox, drafts folder from folder list
RArray<TFSMailMsgId> folderIds;
- folderIds.Reset();
+ CleanupClosePushL( folderIds );
for(TInt i=0;i<iFolders.Count();i++)
{
TFSMailMsgId id = iFolders[i]->GetFolderId();
@@ -451,7 +451,7 @@
// start search
plugin->SearchL( GetId(), folderIds, aSearchStrings, aSortCriteria, aSearchObserver );
- folderIds.Reset();
+ CleanupStack::PopAndDestroy( &folderIds );
}
}
--- a/emailservices/emailframework/commonlib/src/CFSMailMessagePart.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailframework/commonlib/src/CFSMailMessagePart.cpp Tue May 11 15:57:15 2010 +0300
@@ -402,16 +402,19 @@
if(plugin != NULL)
{
RPointerArray<CFSMailMessagePart> parts;
- RArray<TFSMailMsgId> partIds;
- plugin->ChildPartsL(GetMailBoxId(),GetFolderId(),GetMessageId(),GetPartId(),parts);
+ CleanupResetAndDestroyPushL( parts );
+ plugin->ChildPartsL(GetMailBoxId(),GetFolderId(),GetMessageId(),GetPartId(),parts);
+ RArray<TFSMailMsgId> partIds;
+ CleanupClosePushL( partIds );
+ partIds.ReserveL( 1 + parts.Count() );
for(TInt i=0;i<parts.Count();i++)
{
- partIds.Append(parts[i]->GetMessageId());
+ partIds.AppendL( parts[i]->GetMessageId() );
}
- partIds.Append(GetPartId());
+ partIds.AppendL( GetPartId() );
plugin->RemovePartContentL(GetMailBoxId(), GetFolderId(), GetMessageId(), partIds);
- parts.ResetAndDestroy();
- partIds.Reset();
+ CleanupStack::PopAndDestroy( &partIds );
+ CleanupStack::PopAndDestroy( &parts );
}
}
@@ -432,12 +435,12 @@
{
// get attachment list
RPointerArray<CFSMailMessagePart> attachments;
- attachments.Reset();
+ CleanupResetAndDestroyPushL( attachments );
DoAttachmentListL(attachments);
// copy attachment part ids
RArray<TFSMailMsgId> ids;
- ids.Reset();
+ CleanupClosePushL( ids );
for(TInt i=0;i<attachments.Count();i++)
{
ids.Append(attachments[i]->GetPartId());
@@ -450,8 +453,8 @@
}
// clean tables
- attachments.ResetAndDestroy();
- ids.Reset();
+ CleanupStack::PopAndDestroy( &ids );
+ CleanupStack::PopAndDestroy( &attachments );
}
}
--- a/emailservices/emailframework/data/fsmailbrandmanager.rss Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailframework/data/fsmailbrandmanager.rss Tue May 11 15:57:15 2010 +0300
@@ -400,7 +400,6 @@
brand_id_match_strings =
{
- BRAND_MATCH_STRING { text = "btinternet.com"; },
BRAND_MATCH_STRING { text = "btopenworld.com"; },
BRAND_MATCH_STRING { text = "talk21.com"; }
};
@@ -423,6 +422,19 @@
red = 0xff; green = 0x30; blue = 0x20; alpha = 0xff; }
};
},
+ BRAND {
+ // Definition of btinternet.com brand with default icon
+ brand_id_match_strings =
+ {
+ BRAND_MATCH_STRING { text = "btinternet.com"; }
+ };
+
+ texts =
+ {
+ BRANDABLE_TEXT { id = EFSMailboxName; text = "BT Internet"; }
+ };
+ },
+
BRAND {
// Definition of ... Yahoo! Mail brand
--- a/emailservices/emailframework/src/CFSMailClient.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailframework/src/CFSMailClient.cpp Tue May 11 15:57:15 2010 +0300
@@ -33,24 +33,28 @@
{
FUNC_LOG;
- CFSMailClient* client = Instance();
- if(!client)
- {
- client = new (ELeave) CFSMailClient();
- CleanupStack:: PushL(client);
- client->ConstructL(aConfiguration);
- TInt err = Dll::SetTls(static_cast<TAny*>(client));
- User::LeaveIfError(err);
- }
- else
- {
- CleanupStack:: PushL(client);
- }
+ CFSMailClient* client = Instance();
+ if( !client )
+ {
+ client = new (ELeave) CFSMailClient();
+ // The new client needs to be deleted rather than closed, up until
+ // the TLS has been set properly.
+ CleanupStack::PushL( client );
+ client->ConstructL( aConfiguration );
+ TInt err = Dll::SetTls( static_cast<TAny*>( client ));
+ User::LeaveIfError( err );
+ // Now that the TLS has been set, we no longer want the new client
+ // to be deleted if there's a problem, so pop it off the cleanup
+ // stack (it will be pushed back on for closing below).
+ CleanupStack::Pop( client );
+ }
- client->IncReferenceCount();
-
- return client;
-
+ // Increment reference count before calling CleanupClosePushL so that
+ // the reference count is correct if CleanupClosePushL leaves.
+ client->IncReferenceCount();
+ CleanupClosePushL( *client );
+
+ return client;
}
// -----------------------------------------------------------------------------
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpssettings.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpssettings.h Tue May 11 15:57:15 2010 +0300
@@ -293,7 +293,9 @@
// array of mailboxes
RArray<TFSMailMsgId> iMailboxArray;
// Internal configuration data
- TInt32 iConfigData;
+ TInt32 iConfigData;
+ // large buffer for reading cenrep data
+ TBuf<KMaxFileName> iCenrepText;
};
#endif /*CMAILCPSSETTINGS_H_*/
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp Tue May 11 15:57:15 2010 +0300
@@ -1179,7 +1179,10 @@
void CMailCpsIf::SetUpdateNeeded( const TInt aInstance, const TBool aValue )
{
FUNC_LOG;
- iInstIdList[aInstance].iUpdateNeeded = aValue;
+ if ( aInstance >= 0 && aInstance < GetWidgetInstanceCount() )
+ {
+ iInstIdList[aInstance].iUpdateNeeded = aValue;
+ }
}
// ---------------------------------------------------------------------------
@@ -1189,6 +1192,11 @@
TBool CMailCpsIf::UpdateNeeded( const TInt aInstance )
{
FUNC_LOG;
- return iInstIdList[aInstance].iUpdateNeeded;
+ TBool rVal( EFalse );
+ if ( aInstance >= 0 && aInstance < GetWidgetInstanceCount() )
+ {
+ rVal = iInstIdList[aInstance].iUpdateNeeded;
+ }
+ return rVal;
}
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp Tue May 11 15:57:15 2010 +0300
@@ -546,38 +546,43 @@
TInt CMailCpsSettings::GetSettingToAssociate( const TDesC& aContentId )
{
FUNC_LOG;
- TInt ret(KErrNotFound);
+ TInt ret( KErrNotFound );
- for (TInt i = 0; i < KMaxMailboxCount; i++)
+ for ( TInt i = 0; i < KMaxMailboxCount; i++ )
{
- TBuf<KMaxDescLen> value;
- TUint32 key(KCMailWidgetContentIdBase+i);
- iCenRep->Get( key, value );
- TInt result = value.Compare(aContentId);
- if (!result)
+ TUint32 key( KCMailWidgetContentIdBase+ i );
+ TInt err = iCenRep->Get( key, iCenrepText );
+ if ( err == KErrNone )
{
- ret = i;
- break;
- }
- }
- if (ret < 0 )
- {
- for (TInt i = 0; i < KMaxMailboxCount; i++)
- {
- TBuf<KMaxDescLen> value;
- TUint32 key(KCMailWidgetContentIdBase+i);
- iCenRep->Get( key, value );
- TInt result = value.Compare(KDissociated);
- if (!result)
+ if ( iCenrepText.Compare( aContentId ) == 0 )
{
ret = i;
break;
}
}
}
+
+ if ( ret < 0 )
+ {
+ for ( TInt i = 0; i < KMaxMailboxCount; i++ )
+ {
+ TUint32 key( KCMailWidgetContentIdBase + i );
+ TInt err = iCenRep->Get( key, iCenrepText );
+ if ( err == KErrNone )
+ {
+ if ( iCenrepText.Compare( KDissociated ) == 0 )
+ {
+ ret = i;
+ break;
+ }
+ }
+ }
+ }
+
return ret;
}
+
// ---------------------------------------------------------------------------
// CMailCpsSettings::Associated
// ---------------------------------------------------------------------------
@@ -585,20 +590,22 @@
TBool CMailCpsSettings::Associated( const TDesC& aContentId )
{
FUNC_LOG;
- TBool ret(EFalse);
+ TBool ret( EFalse );
- for (TInt i = 0; i < KMaxMailboxCount; i++)
+ for ( TInt i = 0; i < KMaxMailboxCount; i++ )
{
- TBuf<KMaxDescLen> value;
- TUint32 key(KCMailWidgetContentIdBase+i);
- iCenRep->Get( key, value );
- TInt result = value.Compare(aContentId);
- if (!result)
+ TUint32 key( KCMailWidgetContentIdBase + i );
+ TInt err = iCenRep->Get( key, iCenrepText );
+ if ( err == KErrNone )
{
- ret = ETrue;
- break;
+ if ( iCenrepText.Compare( aContentId ) == 0 )
+ {
+ ret = ETrue;
+ break;
+ }
}
}
+
return ret;
}
@@ -670,30 +677,39 @@
return ret;
}
+
// ---------------------------------------------------------------------------
-// CMailCpsSettings::GetSettingToAssociate
+// CMailCpsSettings::GetMailboxUidByContentId
// ---------------------------------------------------------------------------
//
TUint CMailCpsSettings::GetMailboxUidByContentId( const TDesC& aContentId )
{
FUNC_LOG;
- TInt ret(KErrNone);
- for (TInt i = 0; i < KMaxMailboxCount; i++)
+
+ TInt ret( KErrNone );
+ for ( TInt i = 0; i < KMaxMailboxCount; i++ )
{
- TBuf<KMaxDescLen> cid;
- TUint32 key(KCMailWidgetContentIdBase+i);
- iCenRep->Get( key, cid );
- TInt result = cid.Compare(aContentId);
- if (!result)
+ TUint32 key( KCMailWidgetContentIdBase + i );
+ TInt err = iCenRep->Get( key, iCenrepText );
+ if ( err == KErrNone )
{
- TUint32 key2(KCMailMailboxIdBase+i);
- iCenRep->Get( key2, ret );
- break;
+ if ( iCenrepText.Compare( aContentId ) == 0 )
+ {
+ TUint32 key2( KCMailMailboxIdBase + i );
+ err = iCenRep->Get( key2, ret );
+ if ( err == KErrNone )
+ {
+ break;
+ }
+ }
}
}
+
return ret;
}
+
+
// ---------------------------------------------------------------------------
// CMailCpsSettings::GetPluginUidByContentId
// ---------------------------------------------------------------------------
@@ -701,23 +717,30 @@
TUint CMailCpsSettings::GetPluginUidByContentId( const TDesC& aContentId )
{
FUNC_LOG;
- TInt ret(KErrNone);
- for (TInt i = 0; i < KMaxMailboxCount; i++)
+
+ TInt ret( KErrNone );
+ for ( TInt i = 0; i < KMaxMailboxCount; i++ )
{
- TBuf<KMaxDescLen> cid;
- TUint32 key(KCMailWidgetContentIdBase+i);
- iCenRep->Get( key, cid );
- TInt result = cid.Compare(aContentId);
- if (!result)
+ TUint32 key( KCMailWidgetContentIdBase + i );
+ TInt err = iCenRep->Get( key, iCenrepText );
+ if ( err == KErrNone )
{
- TUint32 key2(KCMailPluginIdBase+i);
- iCenRep->Get( key2, ret );
- break;
+ if ( iCenrepText.Compare( aContentId ) == 0 )
+ {
+ TUint32 key2( KCMailPluginIdBase + i );
+ err = iCenRep->Get( key2, ret );
+ if ( err == KErrNone )
+ {
+ break;
+ }
+ }
}
}
+
return ret;
}
+
// ---------------------------------------------------------------------------
// CMailCpsSettings::Configuration
// ---------------------------------------------------------------------------
@@ -748,68 +771,77 @@
void CMailCpsSettings::ToggleWidgetNewMailIconL( TBool aIconOn, const TFSMailMsgId& aMailBox )
{
FUNC_LOG;
- TBuf<KMaxDescLen> mailbox;
- mailbox.Num(aMailBox.Id());
-
- TBuf<KMaxDescLen> str;
- str.Copy(KStartSeparator);
- str.Append(mailbox);
- str.Append(KEndSeparator);
-
- TBuf<KMaxDescLen> stored;
- TUint32 key(KCMailMailboxesWithNewMail);
- iCenRep->Get( key, stored );
+
+ _LIT( KFormat, "%S%d%S" );
+ const TInt KStrLen = 64;
+
+ TBuf<KStrLen> mailbox;
+ mailbox.Format( KFormat, &KStartSeparator, aMailBox.Id(), &KEndSeparator );
- TInt result = stored.Find(str);
+ TUint32 key( KCMailMailboxesWithNewMail );
+ TInt err = iCenRep->Get( key, iCenrepText );
+
+ if ( err == KErrNone )
+ {
+ TInt pos = iCenrepText.Find( mailbox );
- if (aIconOn)
- {
- if (result < 0) // Not found
+ if ( aIconOn )
{
- stored.Append(str);
- iCenRep->Set( key, stored );
+ if ( pos < 0 ) // Not found
+ {
+ iCenrepText.Append( mailbox );
+ iCenRep->Set( key, iCenrepText );
+ }
}
- }
- else
- {
- if (result >= 0)
+ else
{
- stored.Delete(result, str.Length());
- iCenRep->Set( key, stored );
+ if ( pos >= 0 )
+ {
+ iCenrepText.Delete( pos, mailbox.Length() );
+ iCenRep->Set( key, iCenrepText );
+ }
}
}
}
+
+
// -----------------------------------------------------------------------------
// CMailCpsSettings::GetNewMailStateL
// -----------------------------------------------------------------------------
TBool CMailCpsSettings::GetNewMailStateL( const TFSMailMsgId& aMailBox, TInt aUnreadCount )
{
FUNC_LOG;
+
+ _LIT( KFormat, "%S%d%S" );
+ const TInt KStrLen = 64;
+
+
TBool ret(EFalse);
if ( aUnreadCount )
{
- TBuf<KMaxDescLen> mailbox;
- mailbox.Num(aMailBox.Id());
-
- TBuf<KMaxDescLen> str;
- str.Copy(KStartSeparator);
- str.Append(mailbox);
- str.Append(KEndSeparator);
+ TBuf<KStrLen> mailbox;
+ mailbox.Format( KFormat, &KStartSeparator, aMailBox.Id(), &KEndSeparator );
- TBuf<KMaxDescLen> stored;
- TUint32 key(KCMailMailboxesWithNewMail);
- iCenRep->Get( key, stored );
-
- TInt result = stored.Find(str);
- if (result >= 0)
+ TUint32 key( KCMailMailboxesWithNewMail );
+ TInt err = iCenRep->Get( key, iCenrepText );
+ if ( err == KErrNone )
{
- ret = ETrue;
+ TInt pos = iCenrepText.Find( mailbox );
+ if ( pos >= 0 )
+ {
+ ret = ETrue;
+ }
}
}
else
{
ToggleWidgetNewMailIconL( EFalse, aMailBox );
}
+
return ret;
}
+
+
+
+
--- a/emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF Tue May 11 15:57:15 2010 +0300
@@ -193,4 +193,6 @@
?Load2LC@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 192 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int)
?Load2L@CResourceLoader@@QAEPAVHBufC16@@HABVTDesC16@@@Z @ 193 NONAME ; class HBufC16 * CResourceLoader::Load2L(int, class TDesC16 const &)
?CalendarFileName@CBasePlugin@@MBEABVTDesC16@@XZ @ 194 NONAME ; class TDesC16 const & CBasePlugin::CalendarFileName(void) const
+ ?StartOp@CDelayedOp@@QAEXXZ @ 195 NONAME ; void CDelayedOp::StartOp(void)
+ ?DeleteDelayedOpsManager@CBasePlugin@@QAEXXZ @ 196 NONAME ; void CBasePlugin::DeleteDelayedOpsManager(void)
--- a/emailservices/emailstore/base_plugin/EABI/basepluginU.DEF Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/EABI/basepluginU.DEF Tue May 11 15:57:15 2010 +0300
@@ -297,4 +297,6 @@
_ZN15CResourceLoader7Load2LCEiRK7TDesC16 @ 296 NONAME
_ZN15CResourceLoader7Load2LCEii @ 297 NONAME
_ZNK11CBasePlugin16CalendarFileNameEv @ 298 NONAME
+ _ZN10CDelayedOp7StartOpEv @ 299 NONAME
+ _ZN11CBasePlugin23DeleteDelayedOpsManagerEv @ 300 NONAME
--- a/emailservices/emailstore/base_plugin/group/BasePlugin.mmp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/group/BasePlugin.mmp Tue May 11 15:57:15 2010 +0300
@@ -62,7 +62,7 @@
SOURCE basepluginfetch.cpp
SOURCE baseplugindelayedops.cpp
SOURCE basepluginresourceloader.cpp
-SOURCE NestedAO.cpp
+
// *************************************
// OTHER STUFF
--- a/emailservices/emailstore/base_plugin/inc/BasePlugin.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/BasePlugin.h Tue May 11 15:57:15 2010 +0300
@@ -90,6 +90,12 @@
// CFSMailPlugin //
public:
+ /**
+ * This methoed must be called before destruction of
+ * CBasePlugin derived class. To fix bug EIZU-7XVF2Z.
+ */
+ IMPORT_C void DeleteDelayedOpsManager();
+
IMPORT_C virtual void ListMailBoxesL(
RArray<TFSMailMsgId>& aMailboxes );
--- a/emailservices/emailstore/base_plugin/inc/NestedAO.h Tue Apr 27 16:20:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
-* ============================================================================
-* Name : NestedAO.h
-* Part of : Base Plugin
-*
-* Description:
-* Class used to implement nested active object used to handle deletion
-* of large number of messages by breaking them into smaller chunks
-* Version:
-*
-* Copyright (C) 2010 Nokia Corporation.
-* This material, including documentation and any related
-* computer programs, is protected by copyright controlled by
-* Nokia Corporation. All rights are reserved. Copying,
-* including reproducing, storing, adapting or translating, any
-* or all of this material requires the prior written consent of
-* Nokia Corporation. This material also contains confidential
-* information which may not be disclosed to others without the
-* prior written consent of Nokia Corporation.
-* ============================================================================
-*/
-
-#ifndef __NESTED_AO_H__
-#define __NESTED_AO_H__
-
-// Include Files
-
-
-#include <e32base.h>
-
-
-class MDeletionHandler
- {
-public:
- enum TState
- {
- EInProgress,
- EFree
- };
- //Deletes messages from aStartIndex KSizeOfChunk at a time
- virtual TBool DeleteMessagesInChunksL( TInt aStartIndex ) = 0;
- };
-//Time interval between issuing 2 requests to delete messages
-const TInt KWaitIntervalInMicroSecs=500;
-//Maximum number of messages deleted in one go
-const TInt KSizeOfChunk=10;
-
-NONSHARABLE_CLASS ( CNestedAO ) : public CTimer
- {
- public:
-
- static CNestedAO* NewL( MDeletionHandler& aDeletionHandler );
- virtual ~CNestedAO();
- // --------------------------------------------------------------------------
- // CNestedAO::DeleteMessagesAsync
- // Used to delete messages asynchronously
- // Deleting a small number of messages at a time
- // ------------
- void DeleteMessagesAsync();
- // --------------------------------------------------------------------------
- // CNestedAO::Rc
- // Used to return the iStatus return value
- // ------------
- TInt Rc() { return iRc; }
-
- private:
- CNestedAO( MDeletionHandler& aDeletionHandler );
- void ConstructL();
-
- // inherited from CActive
- virtual void RunL();
- virtual void DoCancel();
- // --------------------------------------------------------------------------
- // CNestedAO::Stop
- // Stops the scheduler from running
- // Called after all messages are processed
- // or in error condition
- // ------------
- void Stop();
-
- private:
- CActiveSchedulerWait* iNestedWait;
- MDeletionHandler& iDeletionHandler;
- TInt iDeletionIndex;
- TInt iRc;
- };
-
-
-#endif //__NESTED_AO_H__
--- a/emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h Tue May 11 15:57:15 2010 +0300
@@ -49,4 +49,31 @@
CleanupResetAndDestroyClose<T>::PushL(aRef);
}
+/**
+* Cleanup support for owning pointer arrays
+*/
+
+template<class T>
+class CleanupResetAndDestroy
+{
+private:
+ inline static void ResetAndDestroy( TAny *aPtr )
+ {
+ reinterpret_cast<T*>( aPtr )->ResetAndDestroy();
+ };
+public:
+ inline static void PushL( T& aItem )
+ {
+ TCleanupItem item( &CleanupResetAndDestroy::ResetAndDestroy, &aItem );
+ CleanupStack::PushL( item );
+ };
+} ;
+
+template <class T>
+inline void CleanupResetAndDestroyPushL( T& aRef )
+ {
+ CleanupResetAndDestroy<T>::PushL( aRef );
+ }
+
+
#endif
--- a/emailservices/emailstore/base_plugin/inc/baseplugindelayedops.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/baseplugindelayedops.h Tue May 11 15:57:15 2010 +0300
@@ -68,22 +68,25 @@
* The base class for the delayed operations. All of the delayed operations must
* derive from it.
*/
-class CDelayedOp : public CAsyncOneShot
+class CDelayedOp : public CActive
{
public:
-
+
IMPORT_C virtual ~CDelayedOp();
IMPORT_C void SetContext(
CBasePlugin& aPlugin,
MDelayedOpsManager& aManager );
-
+
+ IMPORT_C void StartOp();
+
/**
* Derived classes must implement their asynchronous processing in this
* method. The GetPlugin method can only be used from within this method.
+ * Returns boolean: ETrue if op is yielding and needs to be called again, or EFalse if op is done.
*/
- virtual void ExecuteOpL() = 0;
+ virtual TBool ExecuteOpL() = 0;
protected:
--- a/emailservices/emailstore/base_plugin/inc/baseplugindelayedopsprivate.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/baseplugindelayedopsprivate.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,6 @@
#include "baseplugindelayedops.h"
-#include "NestedAO.h"
/**
* Lets the user enqueue and dequeue asynchronous jobs for handling
@@ -70,7 +69,7 @@
/**
*
*/
-NONSHARABLE_CLASS( CDelayedDeleteMessagesOp ) : public CDelayedOp, public MDeletionHandler
+NONSHARABLE_CLASS( CDelayedDeleteMessagesOp ) : public CDelayedOp
{
public:
@@ -88,12 +87,8 @@
virtual ~CDelayedDeleteMessagesOp();
//CDelayedOp::ExecuteOpL
- virtual void ExecuteOpL();
-
- //From MDeletionHandler
- //Used to delete messages in chunks starting from aStartIndex
- TBool DeleteMessagesInChunksL( TInt aStartIndex );
-
+ virtual TBool ExecuteOpL();
+
private:
void ConstructL( const RArray<TFSMailMsgId>& aMessages );
@@ -105,14 +100,14 @@
CDelayedDeleteMessagesOp( const CDelayedDeleteMessagesOp& );
CDelayedDeleteMessagesOp& operator= ( const CDelayedDeleteMessagesOp& );
-
+
private:
TMsgStoreId iMailBoxId;
TMsgStoreId iFolderId;
RArray<TMsgStoreId> iMessages;
TBool iImmediateDelete;
- TState iState;
+ TInt iIndex;
__LOG_DECLARATION
};
@@ -142,7 +137,7 @@
virtual ~CDelayedSetContentOp();
//CDelayedOp::ExecuteOpL
- virtual void ExecuteOpL();
+ virtual TBool ExecuteOpL();
private:
--- a/emailservices/emailstore/base_plugin/src/BasePlugin.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/BasePlugin.cpp Tue May 11 15:57:15 2010 +0300
@@ -1152,6 +1152,15 @@
CleanupStack::PopAndDestroy( &folders );
}
+/**
+ * This methoed must be called before destruction of
+ * CBasePlugin derived class. To fix bug EIZU-7XVF2Z.
+ */
+EXPORT_C void CBasePlugin::DeleteDelayedOpsManager()
+ {
+ delete iDelayedOpsManager;
+ iDelayedOpsManager = NULL;
+ }
/**
*
--- a/emailservices/emailstore/base_plugin/src/NestedAO.cpp Tue Apr 27 16:20:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* ==============================================================================
-* Name : NestedAO.cpp
-* Part of : Base Plugin
-* Description : Implementation of a nested active object used to handle deletion
-* of large number of messages by breaking them into smaller chunks
-* Version :
-*
-* Copyright (c) 2005 - 2010 Nokia Corporation.
-* This material, including documentation and any related
-* computer programs, is protected by copyright controlled by
-* Nokia Corporation. All rights are reserved. Copying,
-* including reproducing, storing, adapting or translating, any
-* or all of this material requires the prior written consent of
-* Nokia Corporation. This material also contains confidential
-* information which may not be disclosed to others without the
-* prior written consent of Nokia Corporation.
-* ==============================================================================
-*/
-// Include Files
-//
-
-
-#include "NestedAO.h"
-#include "baseplugindelayedops.h"
-#include "baseplugindelayedopsprivate.h"
-
-//Class CNestedAO
-
-// --------------------------------------------------------------------------
-// CNestedAO::NewL
-// ------------
-CNestedAO* CNestedAO::NewL( MDeletionHandler& aDeletionHandler )
- {
- CNestedAO* self = new(ELeave) CNestedAO( aDeletionHandler );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-// --------------------------------------------------------------------------
-// CNestedAO::CNestedAO
-// ------------
-CNestedAO::CNestedAO( MDeletionHandler& aDeletionHandler )
- : CTimer( EPriorityIdle ), iDeletionHandler( aDeletionHandler ), iRc( KErrNone )
- {
- }
-// --------------------------------------------------------------------------
-// CNestedAO::ConstructL()
-// ------------
-void CNestedAO::ConstructL()
- {
- CTimer::ConstructL();
- iNestedWait = new( ELeave ) CActiveSchedulerWait();
- CActiveScheduler::Add( this );
- }
-// --------------------------------------------------------------------------
-// CNestedAO::~CNestedAO
-// ------------
-CNestedAO::~CNestedAO()
- {
- Cancel();
- delete iNestedWait;
- }
-// --------------------------------------------------------------------------
-// CNestedAO::DeleteMessagesAsync
-// Used to delete messages asynchronously
-// Deleting a small number of messages at a time
-// ------------
-void CNestedAO::DeleteMessagesAsync()
- {
- iDeletionIndex = 0;
- After( KWaitIntervalInMicroSecs ); //to invoke RunL after 100 microseconds
- iNestedWait->Start();
- }
-// --------------------------------------------------------------------------
-// CNestedAO::DoCancel
-// ------------
-void CNestedAO::DoCancel()
- {
- iRc = KErrCancel;
- Stop();
- }
-// --------------------------------------------------------------------------
-// CNestedAO::RunL
-// ------------
-void CNestedAO::RunL()
- {
- iRc = iStatus.Int();
- if ( iStatus.Int() == KErrNone )
- {
- TBool done = iDeletionHandler.DeleteMessagesInChunksL( iDeletionIndex );
- if( !done )
- {
- //Increment deletionidex
- iDeletionIndex+=KSizeOfChunk;
- After( KWaitIntervalInMicroSecs );
- }
- else
- {
- Stop();
- }
- }
- else
- {
- Stop();
- }
- }
-
-// --------------------------------------------------------------------------
-// CNestedAO::Stop
-// Stops the scheduler from running
-// Called after all messages are processed
-// or in error condition
-// ------------
-void CNestedAO::Stop()
- {
- if( iNestedWait->IsStarted() )
- {
- // Stop the nested active scheduler (flow-of-control will pick up immediately following the
- // call to iWait.Start().
- iNestedWait->AsyncStop();
- } // end if
- }
--- a/emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,6 @@
#include "baseplugindelayedops.h"
#include "baseplugindelayedopsprivate.h"
-#include "NestedAO.h"
///////////////////////////////////////////////////
// CDelayedOp //
@@ -46,9 +45,21 @@
/**
*
*/
+/*public*/ EXPORT_C void CDelayedOp::StartOp()
+ {
+ iStatus = KRequestPending;
+ SetActive();
+ TRequestStatus* pStatus = &iStatus;
+ User::RequestComplete( pStatus, KErrNone );
+ }
+
+/**
+ *
+ */
/*protected*/ EXPORT_C CDelayedOp::CDelayedOp()
- : CAsyncOneShot( CActive::EPriorityIdle )
+ : CActive( CActive::EPriorityIdle )
{
+ CActiveScheduler::Add( this );
}
/**
@@ -57,7 +68,9 @@
/*private virtual*/ EXPORT_C void CDelayedOp::RunL()
{
__LOG_ENTER_SUPPRESS( "Run" );
- TRAPD( err, ExecuteOpL() );
+ TBool again( EFalse );
+
+ TRAPD( err, again = ExecuteOpL() );
if ( KErrNone != err )
{
@@ -65,9 +78,16 @@
"Error while executing delayed operation: %d.", err );
}
- //self-destroy.
- iManager->DequeueOp( *this );
- delete this;
+ if ( again )
+ {
+ StartOp();
+ }
+ else
+ {
+ //self-destroy.
+ iManager->DequeueOp( *this );
+ delete this;
+ }
}
/**
@@ -123,7 +143,7 @@
{
iDelayedOps.AppendL( aOp );
aOp->SetContext( iPlugin, *this );
- aOp->Call();
+ aOp->StartOp();
}
/**
@@ -231,63 +251,6 @@
/**
*
*/
-/*public virtual*/TBool CDelayedDeleteMessagesOp::DeleteMessagesInChunksL( TInt aStartIndex )
- {
- __LOG_ENTER( "DeleteMessagesInChunksL" );
- TBool done=EFalse;
- TInt endIndex;
- if( aStartIndex + KSizeOfChunk < iMessages.Count() )
- {
- endIndex = aStartIndex + KSizeOfChunk;
- }
- else
- {
- endIndex = iMessages.Count();
- done=ETrue;
- }
- CMailboxInfo& mailBoxInfo
- = GetPlugin().GetMailboxInfoL( iMailBoxId );
- CMsgStoreMailBox& mailBox = mailBoxInfo();
-
- for ( TInt i = aStartIndex; i < endIndex; ++i )
- {
- TMsgStoreId msgId = iMessages[i];
-
- if ( EFalse == iImmediateDelete )
- {
- //try to find the message in the deleted items folder.
- CMsgStoreMessage* theMessage = NULL;
- TRAP_IGNORE( theMessage = mailBox.FetchMessageL(
- msgId, mailBoxInfo.iRootFolders.iFolders[EFSDeleted] ) );
-
- if ( NULL == theMessage )
- {
- //if not in deleted items then move it there.
- __LOG_WRITE8_FORMAT1_INFO("Moving message 0x%X to the deleted items.", msgId );
- mailBox.MoveMessageL(
- msgId, KMsgStoreInvalidId,
- mailBoxInfo.iRootFolders.iFolders[EFSDeleted] );
- }
- else
- {
- //in deleted items, really delete it.
- __LOG_WRITE8_FORMAT1_INFO( "Deleting message 0x%X.", msgId );
-
- delete theMessage;
- mailBox.DeleteMessageL( msgId, iFolderId );
- }
- }
- else
- {
- mailBox.DeleteMessageL( msgId, iFolderId );
- }
- }
- __LOG_EXIT;
- return done;
- }
-/**
- *
- */
/*private*/
void CDelayedDeleteMessagesOp::ConstructL(
const RArray<TFSMailMsgId>& aMessages )
@@ -320,33 +283,67 @@
TMsgStoreId aMailBoxId,
TMsgStoreId aFolderId )
:
- iMailBoxId( aMailBoxId ), iFolderId( aFolderId ),
- iImmediateDelete( EFalse ), iState ( EFree )
+ iMailBoxId( aMailBoxId ), iFolderId( aFolderId )
{
}
/**
*
*/
-/*private*/ void CDelayedDeleteMessagesOp::ExecuteOpL()
+/*private*/ TBool CDelayedDeleteMessagesOp::ExecuteOpL()
{
__LOG_ENTER( "ExecuteOpL" );
- if ( iState != EFree )
+
+ //Maximum number of messages deleted in one go
+ const TInt KNumOfDeletesBeforeYield = 30;
+
+ TBool runAgain = ETrue;
+ TInt endIndex = iIndex + KNumOfDeletesBeforeYield;
+
+ if( endIndex >= iMessages.Count() )
{
- //this code becomes re-entrant now because we use nested AS.
- // so if we are already authenticating, return right away.
- return;
+ endIndex = iMessages.Count();
+ runAgain = EFalse; // last time, no need to run again.
}
- iState=EInProgress;
- CNestedAO* nestedAO = CNestedAO::NewL( *this );
- //this is a blocking call with nested active scheduler
- //This method makes a callback periodically to DeleteMessagesInChunks
- //to delete the messages one chunk at a time
- nestedAO->DeleteMessagesAsync();
- //continue execution here
- delete nestedAO;
- iState = EFree;
+
+ CMailboxInfo& mailBoxInfo = GetPlugin().GetMailboxInfoL( iMailBoxId );
+ CMsgStoreMailBox& mailBox = mailBoxInfo();
+
+ for ( ; iIndex < endIndex; iIndex++ )
+ {
+ TMsgStoreId msgId = iMessages[iIndex];
+
+ if ( EFalse == iImmediateDelete )
+ {
+ //try to find the message in the deleted items folder.
+ CMsgStoreMessage* theMessage = NULL;
+ TRAP_IGNORE( theMessage = mailBox.FetchMessageL(
+ msgId, mailBoxInfo.iRootFolders.iFolders[ EFSDeleted ] ) );
+
+ if ( NULL == theMessage )
+ {
+ //if not in deleted items then move it there.
+ __LOG_WRITE8_FORMAT1_INFO("Moving message 0x%X to the deleted items.", msgId );
+ mailBox.MoveMessageL( msgId, KMsgStoreInvalidId,
+ mailBoxInfo.iRootFolders.iFolders[ EFSDeleted ] );
+ }
+ else
+ {
+ //in deleted items, really delete it.
+ __LOG_WRITE8_FORMAT1_INFO( "Deleting message 0x%X.", msgId );
+
+ delete theMessage;
+ mailBox.DeleteMessageL( msgId, iFolderId );
+ }
+ }
+ else
+ {
+ mailBox.DeleteMessageL( msgId, iFolderId );
+ }
+ }
+
__LOG_EXIT;
+ return runAgain;
}
@@ -419,7 +416,7 @@
/**
* CDelayedOp::ExecuteOpL
*/
-/*public virtual*/ void CDelayedSetContentOp::ExecuteOpL()
+/*public virtual*/ TBool CDelayedSetContentOp::ExecuteOpL()
{
__LOG_ENTER( "ExecuteOpL" )
@@ -446,8 +443,10 @@
"Updated the properties of part 0x%X.", part->Id() )
}
- CleanupStack::PopAndDestroy( part );
+ CleanupStack::PopAndDestroy( part );
+
__LOG_EXIT
+ return EFalse;
}
/**
--- a/emailservices/emailstore/message_store/server/src/MessageStoreSession.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/message_store/server/src/MessageStoreSession.cpp Tue May 11 15:57:15 2010 +0300
@@ -2724,11 +2724,12 @@
aMessage.ReadL( aIndex, length16Pckg, position );
position += length16Pckg.Length();
- HBufC8* buf8 = HBufC8::NewL( length16 );
- aArray.Append( buf8 );
+ HBufC8* buf8 = HBufC8::NewLC( length16 );
TPtr8 buf8Ptr( buf8->Des() );
aMessage.ReadL( aIndex, buf8Ptr, position );
buf8->Des().SetLength( length16 );
+ aArray.AppendL( buf8 );
+ CleanupStack::Pop(buf8);
position += length16;
} // end while
}
@@ -2755,7 +2756,7 @@
if ( readBuf.MaxLength() < length16 )
{
- readBuf.ReAlloc( length16 );
+ readBuf.ReAllocL( length16 );
}
aMessage.ReadL( aIndex, readBuf, position );
@@ -2763,7 +2764,9 @@
const TUint16* valuePtr = reinterpret_cast<const TUint16*>( readBuf.Ptr() );
TPtrC valueDes( valuePtr, length16 / 2 );
- aArray.Append( valueDes.AllocL() );
+ HBufC *p = valueDes.AllocLC();
+ aArray.AppendL( p );
+ CleanupStack::Pop( p );
position += length16;
} // end while
--- a/emailuis/emailui/data/FreestyleEmailUi.rss Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/data/FreestyleEmailUi.rss Tue May 11 15:57:15 2010 +0300
@@ -1548,7 +1548,6 @@
MENU_ITEM { command = EFsEmailUiCmdActionsForward; txt = qtn_fse_message_list_options_forward; },
MENU_ITEM { command = EFsEmailUiCmdMailActions; txt = qtn_cmail_message_list_options_actions; cascade=r_fsemailui_maillist_submenu_mail_actions;},
MENU_ITEM { command = EFsEmailUiCmdSync; txt = qtn_cmail_message_list_options_send_receive; },
- MENU_ITEM { command = EFsEmailUiCmdCancelSync; txt = qtn_fse_launcher_options_cancel_sync; },
MENU_ITEM { command = EFsEmailUiCmdMarkingMode; txt = qtn_fse_message_list_options_mark; },
MENU_ITEM { command = EFsEmailUiCmdSettings; txt = qtn_fse_message_list_options_settings; },
MENU_ITEM { command = EFsEmailUiCmdHelp; txt = qtn_options_help; },
@@ -1941,11 +1940,6 @@
items =
{
MENU_ITEM { command = EFsEmailUiCmdSelect; txt = text_softkey_select; },
- MENU_ITEM { command = EFsEmailUiCmdGoOnline; txt = qtn_fse_launcher_options_go_online; },
- MENU_ITEM { command = EFsEmailUiCmdGoOffline; txt = qtn_fse_launcher_options_go_offline; },
- MENU_ITEM { command = EFsEmailUiCmdActionsCollapseAll; txt = qtn_fse_message_list_options_collapse_all; },
- MENU_ITEM { command = EFsEmailUiCmdActionsExpandAll; txt = qtn_fse_message_list_options_expand_all; },
- MENU_ITEM { command = EFsEmailUiCmdSettings; txt = qtn_fse_folder_list_options_folder_settings; },
MENU_ITEM { command = EFsEmailUiCmdHelp; txt = qtn_options_help; },
MENU_ITEM { command = EFsEmailUiCmdExit; txt = qtn_options_exit; }
};
--- a/emailuis/emailui/data/html/header.js Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/data/html/header.js Tue May 11 15:57:15 2010 +0300
@@ -4,48 +4,48 @@
var setScrollPositionInterval;
function collapseHeader(sendEvent) {
- if (sendEvent) {
- location.href = "cmail://collapseHeader/";
- }
+ if (sendEvent) {
+ location.href = "cmail://collapseHeader/";
+ }
collapsed = true;
- handleHeaderDisplay( "header_table", "table_initial" );
- updateHeader();
- }
+ handleHeaderDisplay('expanded_header', 'collapsed_header');
+ updateHeader();
+ }
function expandHeader(sendEvent) {
- if (sendEvent) {
- location.href = "cmail://expandHeader/";
- }
- collapsed = false;
- handleHeaderDisplay( "table_initial", "header_table" )
- parent.document.getElementById('email_frameSet').rows = "40%, *";
- }
+ if (sendEvent) {
+ location.href = "cmail://expandHeader/";
+ }
+ collapsed = false;
+ handleHeaderDisplay('collapsed_header', 'expanded_header');
+ updateHeader();
+ }
function updateHeader() {
var rows = "40%, *";
- if (collapsed) {
- if (displayImagesHidden || (parent.header_frame.g_autoLoadImages != 0) || (parent.hiddenCount == 0)) {
+ if (collapsed) {
+ if (displayImagesHidden || (parent.header_frame.g_autoLoadImages != 0) || (parent.hiddenCount == 0)) {
rows = "10%, *";
} else {
rows = "17%, *";
- }
- }
+ }
+ }
parent.document.getElementById('email_frameSet').rows = rows;
}
function handleHeaderDisplay( tableToHide, tableToShow ) {
- document.getElementById(tableToShow).style.display = "";
- document.getElementById(tableToHide).style.display = "none";
- }
+ document.getElementById(tableToHide).style.display = 'none';
+ document.getElementById(tableToShow).style.display = '';
+ }
function init(scrollPos) {
- if (document.getElementById("table_initial").style.display != "none") {
- collapseHeader(false);
- } else {
- expandHeader(false);
- }
+ if (document.getElementById('collapsed_header').style.display != 'none') {
+ collapseHeader(false);
+ } else {
+ expandHeader(false);
+ }
window.scrollTo(0, scrollPos);
- setScrollPositionInterval = setInterval("updateScrollPosition()", 500);
+ setScrollPositionInterval = setInterval("updateScrollPosition()", 500);
}
function displayImagesButtonPressed() {
--- a/emailuis/emailui/inc/FreestyleEmailUiContactHandler.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiContactHandler.h Tue May 11 15:57:15 2010 +0300
@@ -187,7 +187,7 @@
* @param aMailBox = current mailbox, needed to know which MRU list to use
*/
void SearchMatchesL( const TDesC& aText, MFSEmailUiContactHandlerObserver* aObserver,
- CFSMailBox* aMailBox );
+ CFSMailBox* aMailBox, TInt aMode = -1 );
/**
* Reset the status of contact Handlers, cancel all active asynchronous calls. This should be called
--- a/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerContainer.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerContainer.h Tue May 11 15:57:15 2010 +0300
@@ -25,8 +25,6 @@
#include <brctlspecialloadobserver.h>
#include <brctllinkresolver.h>
-#include <finditemengine.h>
-
#include "FreestyleEmailUiAknStatusIndicator.h"
#include "FreestyleEmailDownloadInformationMediator.h"
#include "freestyleemailcenrepkeys.h"
@@ -36,9 +34,9 @@
class CFreestyleEmailUiAppUi;
class CFreestyleMessageHeaderURLEventHandler;
struct TAttachmentData;
-
class CFsEmailUiHtmlViewerContainer;
class MTouchFeedback;
+class CFindItemEngine;
/**
* Single key listener
@@ -262,6 +260,18 @@
// Inform that maillist model has updated
void MailListModelUpdatedL();
+ // Zoom handling
+ void ZoomInL();
+ void ZoomOutL();
+ TInt ZoomLevelL() const;
+ void SetZoomLevelL( const TInt aZoomLevel );
+ TInt MaxZoomLevel() const;
+
+private:
+
+ static TInt DoZoom( TAny* aPtr );
+ void DoZoomL();
+
private: // from CEUiHtmlViewerSettings::MObserver
/**
@@ -271,6 +281,8 @@
private:
+ void CreateBrowserControlInterfaceL();
+
// Second phase constructor.
void ConstructL();
// C++ constructor.
@@ -324,7 +336,6 @@
const TDesC& aFileName, CFSMailMessagePart& aHtmlBodyPart );
HBufC8* GetCharacterSetL( CFSMailMessagePart& aHtmlBodyPart );
TBool IsMessageBodyURLL(const TDesC& aUrl);
- void CreateHyperlinksFromUrlsL( RBuf& aSource );
TInt TotalLengthOfItems( CFindItemEngine& aItemEngine ) const;
//Returns ETrue of clicking on a link requires a browser to be launched
@@ -340,6 +351,8 @@
TRect CalcAttachmentStatusRect();
void TouchFeedback();
+
+ void WriteToFileL( const TDesC& aFileName, RBuf& aHtmlText );
private: // data
@@ -381,7 +394,27 @@
TBool iHeaderExpanded;
// tactile feed back -- not owned
MTouchFeedback* iTouchFeedBack;
+
+ TInt iZoomLevel;
};
+/**
+* PlainTextToHtmlConverter
+*
+* PlainTextToHtmlConverter converts plain text to html. It adds html entities
+* and hyperlinks.
+*/
+NONSHARABLE_CLASS (PlainTextToHtmlConverter)
+ {
+ private:
+ PlainTextToHtmlConverter();
+
+ public:
+ static void PlainTextToHtmlL(const TDesC& aPlainText, RBuf& aHtmlText);
+
+ private:
+ static void ConvertTextL(const TDesC& aSource, RBuf& aTarget);
+ static void ConvertUrlL(const TDesC& aSource, RBuf& aTarget);
+ };
#endif // __FREESTYLEEMAILUI_HTML_VIEWER_CONTAINER_H__
--- a/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerView.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerView.h Tue May 11 15:57:15 2010 +0300
@@ -219,7 +219,6 @@
void DynInitZoomMenuL( CEikMenuPane* aMenuPane );
TInt ZoomLevelIndexL();
void SetZoomLevelIndexL( TInt aIndex );
- void RestoreZoomLevelL();
void SaveEmailAsContactL(
const TDesC& aEmailAddress );
//new functions for support of HTML viewer
@@ -339,6 +338,9 @@
CFlagSelectionNoteHandler* iFlagSelectionHandler;
TBool iNextOrPrevMessageSelected;
TBool iMessageIsDeleted;
+
+ // Id of last deleted message
+ TFSMailMsgId iLastDeletedMessageID;
};
////////////////////////////////////////
--- a/emailuis/emailui/inc/FreestyleEmailUiLauncherGridVisualiser.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiLauncherGridVisualiser.h Tue May 11 15:57:15 2010 +0300
@@ -181,6 +181,8 @@
// From base class CFsEmailUiViewBase
void GetParentLayoutsL( RPointerArray<CAlfVisual>& aLayoutArray ) const;
+ void FadeOut(TBool aDirectionOut);
+
/**
* Called when flip state changes.
*/
--- a/emailuis/emailui/inc/FreestyleEmailUiLayoutData.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiLayoutData.h Tue May 11 15:57:15 2010 +0300
@@ -341,8 +341,7 @@
static const TInt KMaxPcsMatches = 50;
// Predictive contact search popup colors
-static const TRgb KPcsPopupHighlightColor( 0,200,200 );
-static const TRgb KPcsPopupDimmedFontColor( 192,192,192 );
+const TInt KPcsPopupDimmedFontTransparency = 100;
//Icon sizes
static const TInt KListTextureNodeExpandedSize = 14;
--- a/emailuis/emailui/inc/FreestyleEmailUiLayoutHandler.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiLayoutHandler.h Tue May 11 15:57:15 2010 +0300
@@ -234,8 +234,7 @@
// Predictive contact search popup
TInt MaxPcsMatches() const;
- TRgb PcsPopupHighlightColor() const;
- TRgb PcsPopupDimmedFontColor() const;
+ TInt PcsPopupDimmedFontTransparency() const;
//To retrieve respecitve Icon Sizes
TInt ListTextureNodeExpandedSize() const;
--- a/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h Tue May 11 15:57:15 2010 +0300
@@ -268,6 +268,19 @@
// </cmail>
{
friend class CMailListUpdater;
+private:
+
+ // Refresh state
+ enum TRefreshState
+ {
+ ERefreshNone,
+ // Full refresh needed. Update model and redraw entire list.
+ EFullRefreshNeeded,
+ // Partial refresh needed.
+ EPartialRefreshNeeded,
+ // Focus to the beginning.
+ EFocusChangeNeeded
+ };
public:
static CFSEmailUiMailListVisualiser* NewL(CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aMailListControlGroup);
static CFSEmailUiMailListVisualiser* NewLC(CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aMailListControlGroup);
@@ -442,6 +455,9 @@
const TDesC8& aCustomMessage );
void ChildDoDeactivate();
void GetParentLayoutsL( RPointerArray<CAlfVisual>& aLayoutArray ) const;
+
+ void FadeOut(TBool aDirectionOut);
+
/**
* @see CFsEmailUiViewBase::SetStatusBarLayout
*/
--- a/emailuis/emailui/inc/FreestyleEmailUiViewBase.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiViewBase.h Tue May 11 15:57:15 2010 +0300
@@ -100,6 +100,8 @@
*/
void DoTransition( TBool aDirectionOut );
+ virtual void FadeOut(TBool aDirectionOut);
+
/**
* Prepares application exit. This is called by AppUi during cleanup before AppUi's destructor
*/
--- a/emailuis/emailui/inc/FreestyleMessageHeaderHTML.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleMessageHeaderHTML.h Tue May 11 15:57:15 2010 +0300
@@ -92,8 +92,11 @@
* takes care of the urls and marks them as hotspots
*/
void WriteSubjectL(TDesC& aText ) const;
-
+
+ void ExportCollapseButtonL() const;
+ void ExportTimeAndExpandButtonL() const;
void ExportSubjectL() const;
+ void ExportSubjectCollapsedL() const;
void ExportFromL() const;
void ExportToL() const;
void ExportCcL() const;
@@ -118,22 +121,22 @@
void AddImageL( const TDesC8& aImageUrl ) const;
void AddImageL( const TDesC8& aImageId, const TDesC8& aImageUrl, const TDesC8& aImageEvent ) const;
- void StartHeaderTableL( const TDesC8& aTableId ) const;
+ void StartHeaderTableL( const TDesC8& aTableId, TBool aVisible ) const;
void EndHeaderTableL() const;
void StartTableL( const TDesC8& aTableId ) const;
void EndTableL() const;
-
- void AddShowDetailL() const;
-
+
HBufC8* ClickImageEventL( const TDesC8& aImageName ) const;
void AddJavascriptL() const;
HBufC8* HeadingTextLC( TInt aId ) const;
HBufC8* HeadingTextLC( TInt aId, TInt aSize ) const;
-
- void ExportInitialTableL() const;
+
+ void ExportCollapsedHeaderTableL() const;
+ void ExportExpandedHeaderTableL() const;
+
/**
* Function for generating follow up icon's HTML code.
* Returns NULL if no follow up flags are set.
--- a/emailuis/emailui/inc/ncsaddressinputfield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/ncsaddressinputfield.h Tue May 11 15:57:15 2010 +0300
@@ -158,7 +158,7 @@
void FixSemicolonAtTheEndL();
- void SetCursorVisible( TBool aCursorVisible );
+ void SetPhysicsEmulationOngoing( TBool aPhysOngoing );
public: // from CoeControl
--- a/emailuis/emailui/inc/ncscomposeviewcontainer.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/ncscomposeviewcontainer.h Tue May 11 15:57:15 2010 +0300
@@ -739,6 +739,7 @@
TInt iVisibleAreaHeight;
TInt iTotalMoveY;
TInt iSeparatorHeight;
+ TInt iHeaderHeight;
};
--- a/emailuis/emailui/inc/ncseditor.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/ncseditor.h Tue May 11 15:57:15 2010 +0300
@@ -102,6 +102,10 @@
void UpdateCustomDrawer();
+ void SetPhysicsEmulationOngoing( TBool aPhysOngoing );
+
+ TBool IsPhysicsEmulationOngoing() const;
+
#ifdef _DEBUG
void DebugDump();
#endif
@@ -180,6 +184,9 @@
// Caption text for virtual ITU-T
HBufC* iCaptionText;
+
+ // flag to indicate is there physics based dragging or flicking ongoing
+ TBool iPhysOngoing;
};
--- a/emailuis/emailui/inc/ncspopuplistbox.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/ncspopuplistbox.h Tue May 11 15:57:15 2010 +0300
@@ -62,7 +62,7 @@
*
* @param aText
*/
- void InitAndSearchL( const TDesC& aText );
+ void InitAndSearchL( const TDesC& aText, TInt aMode = -1 );
// Destructor
virtual ~CNcsPopupListBox();
@@ -93,7 +93,7 @@
*
* @param aText
*/
- void SetSearchTextL( const TDesC& aText );
+ void SetSearchTextL( const TDesC& aText, TInt aMode = -1 );
/*
*
--- a/emailuis/emailui/inc/ncssubjectfield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/ncssubjectfield.h Tue May 11 15:57:15 2010 +0300
@@ -95,7 +95,7 @@
void EnableKineticScrollingL(CAknPhysics* aPhysics );
- void SetCursorVisible( TBool aCursorVisible );
+ void SetPhysicsEmulationOngoing( TBool aPhysOngoing );
public: // from CoeControl
/**
--- a/emailuis/emailui/src/FreestyleEmailDownloadInformationMediator.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailDownloadInformationMediator.cpp Tue May 11 15:57:15 2010 +0300
@@ -242,7 +242,7 @@
countObject.iSaveRequestedCount > 0 )
{
TFsEmailUiUtility::SetDownloadSave( ETrue );
- TFsEmailUiUtility::ShowFilesSavedToFolderNoteL( countObject.iSaveRequestedCount );
+ TFsEmailUiUtility::ShowFilesSavedToFolderNoteL( countObject.iDownloadsCompletedCount /*iSaveRequestedCount*/ ); // Fix: ESLX-84ACJ9
}
// Show "Download completed" if necessary
else if ( CompletionNotesInUseL() && completedDownloadsToNotify )
@@ -397,14 +397,7 @@
{
if ( iObserverArray[i].iObserver == aObserver && iObserverArray[i].iMessageId == aMessageId )
{
-
- TDownloadCount countObject( aMessageId );
- TInt idx = iDownloadCountArray.Find( countObject,
- TIdentityRelation<TDownloadCount>(EqualMessageId) );
- if ( idx == KErrNotFound )
- {
- RemoveObserver(i);
- }
+ RemoveObserver(i);
}
}
}
--- a/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Tue May 11 15:57:15 2010 +0300
@@ -1316,7 +1316,7 @@
TAdvancedPointerEvent* pointerEvent(aEvent.Pointer());
iLastPointerPosition = pointerEvent->iParentPosition;
}
-
+
TInt key = aEvent.Key()->iScanCode;
// <cmail>
// to disable voice commands during creating new mail message
@@ -1361,7 +1361,7 @@
{
iCurrentActiveView->HandleAppForegroundEventL( EFalse );
}
- // in case the popupmenu is shown propagate event to it
+ // in case the popupmenu is shown propagate event to it
if( iFolderListVisualiser && iFolderListVisualiser->IsPopupShown() )
{
iFolderListVisualiser->HandleAppForegroundEventL( EFalse );
@@ -1384,7 +1384,7 @@
{
iStatusIndicator->HandleForegroundEventL();
}
- // in case the popupmenu is shown propagate event to it
+ // in case the popupmenu is shown propagate event to it
if( iFolderListVisualiser && iFolderListVisualiser->IsPopupShown() )
{
iFolderListVisualiser->HandleAppForegroundEventL( ETrue );
@@ -1454,7 +1454,7 @@
case KEikDynamicLayoutVariantSwitch:
iEnv->NotifyLayoutChangedL();
break;
- case KAknsMessageSkinChange:
+ case KAknsMessageSkinChange:
iEnv->NotifySkinChangedL();
break;
}
@@ -1473,12 +1473,12 @@
// {
// CAlfEnv::Static()->NotifySkinChangedL();
// }
-
+
if ( aType == KEikDynamicLayoutVariantSwitch )
{
// Changing layout for status pane (just in case it is not switched
// correctly), fix for HMNN-82BAGR error
- // it's not related with skin change so "moved up" TJOS-83DELP fix
+ // it's not related with skin change so "moved up" TJOS-83DELP fix
TBool landscape(Layout_Meta_Data::IsLandscapeOrientation());
CEikStatusPane* statusPane = StatusPane();
if(landscape)
@@ -1494,7 +1494,7 @@
{
statusPane->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT);
}
- }
+ }
}
if( aType == KEikDynamicLayoutVariantSwitch || aType == KAknsMessageSkinChange )
@@ -2199,7 +2199,7 @@
TIMESTAMP( "Sync error" );
if ( iManualMailBoxSync )
{
- /*
+ /*
* As a fix to TJOS-82ZFCW, this general popup is no longer needed
* // since error id is not provided by plugin, lets popup general note
* HBufC* text = StringLoader::LoadL( R_FS_MSERVER_TEXT_UNABLE_TO_COMPLETE );
@@ -2308,9 +2308,9 @@
}
// Handle mail deleted event in Html view list, as the mails might become obsolete
// Pass sync finished event there too in order to dismiss status dialogs
- else if ( iHtmlViewerView && (aEvent == TFSEventMailDeleted ||
+ else if ( iHtmlViewerView && (aEvent == TFSEventMailDeleted ||
aEvent == TFSEventMailDeletedFromViewer ||
- aEvent == TFSEventMailboxSyncStateChanged ||
+ aEvent == TFSEventMailboxSyncStateChanged ||
aEvent == TFSEventNewMail) && iCurrentActiveView->Id() == HtmlViewerId)
{
iHtmlViewerView->HandleMailBoxEventL( aEvent, aMailbox, aParam1, aParam2, aParam3 );
@@ -2540,6 +2540,7 @@
if ( iConnectionStatusVisible )
{
+
// Get connection status of the current mailbox
TFSMailBoxStatus connectionStatus = EFSMailBoxOffline;
TSSMailSyncState syncState = Idle;
@@ -2549,9 +2550,10 @@
connectionStatus = mb->GetMailBoxStatus();
syncState = mb->CurrentSyncState();
}
+
TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
CEikStatusPaneBase::TPaneCapabilities subPaneTitle =
- StatusPane()->PaneCapabilities( titlePaneUid );
+ StatusPane()->PaneCapabilities( titlePaneUid );
if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
{
--- a/emailuis/emailui/src/FreestyleEmailUiContactHandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiContactHandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -430,7 +430,8 @@
// ---------------------------------------------------------------------------
//
void CFSEmailUiContactHandler::SearchMatchesL( const TDesC& aText,
- MFSEmailUiContactHandlerObserver* aObserver, CFSMailBox* aMailBox )
+ MFSEmailUiContactHandlerObserver* aObserver, CFSMailBox* aMailBox,
+ TInt aMode )
{
FUNC_LOG;
if ( (iState == EContactHandlerIdle) ||
@@ -441,6 +442,10 @@
iClsListHandler->SetCurrentMailboxL( aMailBox );
+ if( aMode != EModeUndefined )
+ {
+ iClsListHandler->InputModeChangedL( (TKeyboardModes)aMode );
+ }
//Async call, CallBack is ArrayUpdatedL (when error: OperationErrorL)
iClsListHandler->SearchMatchesL( aText );
}
--- a/emailuis/emailui/src/FreestyleEmailUiFolderListVisualiser.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiFolderListVisualiser.cpp Tue May 11 15:57:15 2010 +0300
@@ -224,6 +224,7 @@
FUNC_LOG;
BaseConstructL( R_FSEMAILUI_FOLDER_LIST_VIEW );
+ this->HideToolbar();
iFirstStartCompleted = EFalse;
}
@@ -236,6 +237,8 @@
void CFSEmailUiFolderListVisualiser::DoFirstStartL()
{
FUNC_LOG;
+ HideToolbar();
+
iControl = CFSEmailUiFolderListControl::NewL( iEnv, *this );
iModel = new (ELeave) CFSEmailUiFolderListModel();
@@ -1157,24 +1160,9 @@
aMenuPane->SetItemDimmed( EFsEmailUiCmdHelp, ETrue);
}
- // OFFLINE/ONLINE MENU SELECTION
- if( iMoveOrCopyInitiated )
- {
- TFSMailBoxStatus onlineStatus = iAppUi.GetActiveMailbox()->GetMailBoxStatus();
- aMenuPane->SetItemDimmed( EFsEmailUiCmdGoOnline, onlineStatus == EFSMailBoxOnline );
- aMenuPane->SetItemDimmed( EFsEmailUiCmdGoOffline, onlineStatus == EFSMailBoxOffline );
- }
- else
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdGoOnline, ETrue );
- aMenuPane->SetItemDimmed( EFsEmailUiCmdGoOffline, ETrue );
- }
-
// select option
aMenuPane->SetItemDimmed( EFsEmailUiCmdSelect, iModel->Count() == 0 );
- aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCollapseAll, AllNodesCollapsed() );
- aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsExpandAll, AllNodesExpanded() );
}
// Add shortcut hints
@@ -2616,7 +2604,18 @@
if( iFullScreen )
{
AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, iScreenRect );
- iScreenRect.SetRect( 0, 0, iScreenRect.Width(), iScreenRect.Height() );
+ TRect noToolbar;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EControlPane, noToolbar);
+
+
+ if(!Layout_Meta_Data::IsLandscapeOrientation())
+ {
+ iScreenRect.SetRect( 0, 0, iScreenRect.Width(),iScreenRect.Height() + noToolbar.Height() );
+ }
+ else
+ {
+ iScreenRect.SetRect( 0, 0, noToolbar.Width(),iScreenRect.Height());
+ }
}
else
{
@@ -3005,6 +3004,7 @@
{
FUNC_LOG;
//Toolbar()->SetItemDimmed(EFsEmailUiTbCmdSelect, ( iModel == NULL ) || ( iModel->Count() == 0 ), ETrue );
+ HideToolbar();
Toolbar()->SetItemDimmed( EFsEmailUiTbCmdExpandAll, AllNodesExpanded(), ETrue );
Toolbar()->SetItemDimmed( EFsEmailUiTbCmdCollapseAll, AllNodesCollapsed(), ETrue );
}
--- a/emailuis/emailui/src/FreestyleEmailUiGlobalSettingsListView.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiGlobalSettingsListView.cpp Tue May 11 15:57:15 2010 +0300
@@ -131,18 +131,10 @@
// remove help support in pf5250
aMenuPane->SetItemDimmed( EFsEmailUiCmdHelp, ETrue);
}
-
- // Dim "Open" or "Change" depending on the focused item
- TInt focusedId = iGlobalSettingsSettingItemList->FocusedItemId();
- if ( focusedId == EGlobalSettingsActiveIdle )
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdChange, ETrue );
- }
- else
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdOpen, ETrue );
- }
-
+ // Dim "Open" and "Change"
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdChange, ETrue );
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdOpen, ETrue );
+
// Add shortcut hints
iAppUi.ShortcutBinding().AppendShortcutHintsL( *aMenuPane,
CFSEmailUiShortcutBinding::EContextSettings );
--- a/emailuis/emailui/src/FreestyleEmailUiHtmlViewerContainer.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiHtmlViewerContainer.cpp Tue May 11 15:57:15 2010 +0300
@@ -26,6 +26,7 @@
#include <e32base.h>
#include <badesca.h>
#include <utf.h>
+#include <finditemengine.h>
//<cmail>
#include "cfsmailmessage.h"
@@ -79,9 +80,6 @@
_LIT( KHtmlGreaterThan, ">" );
_LIT( KHtmlAmpersand, "&" );
_LIT( KHtmlQuotation, """ );
-// _LIT( KHtmlLinkTag, "<a href=\"%S\">" );
-// _LIT( KHtmlLinkTagWWW, "<a href=\"%S%S\">" );
-// _LIT( KHtmlLinkEndTag, "</a>" );
_LIT( KURLTypeBody, "body");
_LIT( KURLDisplayImages, "cmail://displayImages/" );
@@ -93,13 +91,10 @@
const TText KLessThan = 0x3c;
const TText KAmpersand = 0x26;
const TText KQuotation = 0x22;
-// const TText KCharacterSpace = 0x20;
const TText KSOH = 0x01; // Start Of Heading
-// const TText KCR = 0x0d; // Carriage Return
const TText KLF = 0x0a; // Line Feed
-// const TText KHT = 0x09; // Horizontal Tab
const TText KUnicodeNewLineCharacter = 0x2028;
-const TText KUnicodeParagraphCharacter = 0x2029;
+const TText KUnicodeParagraphCharacter = 0x2029;
const TReal KOverlayButtonMarginX = 0.01; // 1%
const TReal KOverlayButtonMarginY = 0.01; // 1%
const TReal KOverlayButtonSizeP = 0.15; // 15%
@@ -109,6 +104,12 @@
const TInt KStatusIndicatorHeight = 50;
const TInt KStatusIndicatorXMargin = 50;
+// CONSTANTS
+// Zoom levels available on the UI
+const TInt KZoomLevels[] = { 75, 100, 125, 150 };
+const TInt KZoomLevelCount = sizeof( KZoomLevels ) / sizeof( TInt );
+const TInt KZoomLevelIndex100 = 100; // 100 in array KZoomLevels
+
// CEUiHtmlViewerSettingsKeyListener
// ---------------------------------------------------------------------------
@@ -290,7 +291,8 @@
iAppUi( aAppUi ),
iView( aView ),
iFs( iCoeEnv->FsSession() ),
- iFirstTime( ETrue )
+ iFirstTime( ETrue ),
+ iZoomLevel( KZoomLevelIndex100 )
{
FUNC_LOG;
}
@@ -340,6 +342,140 @@
ResetContent();
}
+void CFsEmailUiHtmlViewerContainer::ZoomInL()
+ {
+ SetZoomLevelL( ZoomLevelL() + 1 );
+ }
+
+void CFsEmailUiHtmlViewerContainer::ZoomOutL()
+ {
+ SetZoomLevelL( ZoomLevelL() - 1 );
+ }
+
+TInt CFsEmailUiHtmlViewerContainer::ZoomLevelL() const
+ {
+ FUNC_LOG;
+ TInt zoomLevelIdx = iBrCtlInterface->BrowserSettingL(
+ TBrCtlDefs::ESettingsCurrentZoomLevelIndex );
+
+ // Behaviour of zooming in Browser Control Interface is different in version 7.1
+ // than in previous versions and we need to support both. In older versions there
+ // are 4 preset zoom levels while version 7.1 can zoom to any percent.
+ RArray<TUint>* zoomLevels = iBrCtlInterface->ZoomLevels();
+
+ if ( !zoomLevels || !zoomLevels->Count() || ( *zoomLevels )[0] != KZoomLevels[0] )
+ {
+ // new browser:
+ // BrowserControlIf gives zoom level percentage insted of index to array
+ TBool found = EFalse;
+
+ for ( TInt i = 0 ; i < KZoomLevelCount && !found ; ++i )
+ {
+ if ( zoomLevelIdx == KZoomLevels[i] )
+ {
+ zoomLevelIdx = i;
+ found = ETrue;
+ }
+ }
+
+ if ( !found )
+ {
+ zoomLevelIdx = KErrNotFound;
+ }
+ }
+ return zoomLevelIdx;
+ }
+
+void CFsEmailUiHtmlViewerContainer::SetZoomLevelL( const TInt aZoomLevel )
+ {
+ FUNC_LOG;
+ TInt newValue = KMinTInt;
+
+ // Behaviour of zooming in Browser Control Interface is different in version 7.1
+ // than in previous versions and we need to support both. In older versions there
+ // are 4 preset zoom levels while version 7.1 can zoom to any percent.
+ RArray<TUint>* zoomLevels = iBrCtlInterface->ZoomLevels();
+
+ if ( !zoomLevels || !zoomLevels->Count() || ( *zoomLevels )[0] != KZoomLevels[0] )
+ {
+ // new browser:
+ // BrowserControlIf takes zoom level percentage insted of index to array
+ if ( aZoomLevel >= 0 && aZoomLevel < KZoomLevelCount )
+ {
+ newValue = KZoomLevels[aZoomLevel];
+ }
+ }
+ else
+ {
+ // old browser
+ newValue = aZoomLevel;
+ }
+
+ iZoomLevel = ( newValue > KMinTInt ) ? newValue : aZoomLevel;
+ iBrCtlInterface->SetBrowserSettingL(
+ TBrCtlDefs::ESettingsCurrentZoomLevelIndex, iZoomLevel );
+ }
+
+TInt CFsEmailUiHtmlViewerContainer::DoZoom( TAny* aPtr )
+ {
+ TRAPD( error, reinterpret_cast<CFsEmailUiHtmlViewerContainer*>( aPtr )->DoZoomL() );
+ return error;
+ }
+
+void CFsEmailUiHtmlViewerContainer::DoZoomL()
+ {
+ iBrCtlInterface->SetBrowserSettingL(
+ TBrCtlDefs::ESettingsCurrentZoomLevelIndex, iZoomLevel );
+ }
+
+TInt CFsEmailUiHtmlViewerContainer::MaxZoomLevel() const
+ {
+ return KZoomLevelCount;
+ }
+
+
+void CFsEmailUiHtmlViewerContainer::CreateBrowserControlInterfaceL()
+ {
+ FUNC_LOG;
+
+ if ( iBrCtlInterface )
+ {
+ delete iBrCtlInterface;
+ iBrCtlInterface = NULL;
+ }
+
+ TUint brCtlCapabilities = TBrCtlDefs::ECapabilityClientResolveEmbeddedURL |
+ TBrCtlDefs::ECapabilityDisplayScrollBar |
+ TBrCtlDefs::ECapabilityClientNotifyURL |
+ TBrCtlDefs::ECapabilityLoadHttpFw |
+ TBrCtlDefs::ECapabilityCursorNavigation |
+ TBrCtlDefs::ECapabilityPinchZoom |
+ TBrCtlDefs::ECapabilityFitToScreen;
+
+ // Set browsercontrol to whole screen
+ TRect rect( TPoint(), Size() );
+
+ iBrCtlInterface = CreateBrowserControlL(
+ this, // aParent
+ rect, // aRect
+ brCtlCapabilities, // aBrCtlCapabilities
+ TBrCtlDefs::ECommandIdBase, // aCommandIdBase
+ NULL, // aBrCtlSoftkeysObserver
+ this, // aBrCtlLinkResolver
+ this, // aBrCtlSpecialLoadObserver
+ NULL, // aBrCtlLayoutObserver
+ NULL, // aBrCtlDialogsProvider
+ this, // aBrCtlWindowObserver
+ NULL // aBrCtlDownloadObserver
+ );
+
+ iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsEmbedded, ETrue );
+ iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsAutoLoadImages, iViewerSettings->AutoLoadImages() );
+ iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsPageOverview, EFalse );
+ iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsTextWrapEnabled, ETrue );
+ iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsFontSize, TBrCtlDefs::EFontSizeLevelLarger );
+ }
+
void CFsEmailUiHtmlViewerContainer::ConstructL()
{
FUNC_LOG;
@@ -351,45 +487,23 @@
BaflUtils::EnsurePathExistsL( iFs, iTempHtmlFolderPath );
SetHTMLResourceFlagFullName();
EnsureHTMLResourceL();
-
+
CreateWindowL();
- SetRect( iView.ContainerRect() );
-
- TUint brCtlCapabilities = TBrCtlDefs::ECapabilityClientResolveEmbeddedURL |
- TBrCtlDefs::ECapabilityDisplayScrollBar |
- TBrCtlDefs::ECapabilityClientNotifyURL |
- TBrCtlDefs::ECapabilityLoadHttpFw |
- TBrCtlDefs::ECapabilityCursorNavigation |
- TBrCtlDefs::ECapabilityPinchZoom;
+
+#if defined( BRDO_MULTITOUCH_ENABLED_FF ) && !defined ( __WINSCW__ )
+ //Enable advance pointer info for multi-touch.
+ Window().EnableAdvancedPointers();
+#endif
- // Set browsercontrol to whole screen
- TRect rect( TPoint(), Size() );
-
- iBrCtlInterface = CreateBrowserControlL(
- this, // aParent
- rect, // aRect
- brCtlCapabilities, // aBrCtlCapabilities
- TBrCtlDefs::ECommandIdBase, // aCommandIdBase
- NULL, // aBrCtlSoftkeysObserver
- this, // aBrCtlLinkResolver
- this, // aBrCtlSpecialLoadObserver
- NULL, // aBrCtlLayoutObserver
- NULL, // aBrCtlDialogsProvider
- this, // aBrCtlWindowObserver
- NULL // aBrCtlDownloadObserver
- );
+
+ SetRect( iView.ContainerRect() );
+ CreateBrowserControlInterfaceL();
- iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsEmbedded, ETrue );
- iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsAutoLoadImages, iViewerSettings->AutoLoadImages() );
- iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsPageOverview, EFalse );
- iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsTextWrapEnabled, ETrue );
- iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsFontSize, TBrCtlDefs::EFontSizeLevelLarger );
-
iEventHandler = CFreestyleMessageHeaderURLEventHandler::NewL( iAppUi, iView );
-
+
TRect nextButtonRect = OverlayButtonRect( EFalse );
- iOverlayControlNext = COverlayControl::NewL( this, this, nextButtonRect,
- EMbmFreestyleemailuiQgn_indi_cmail_arrow_next,
+ iOverlayControlNext = COverlayControl::NewL( this, this, nextButtonRect,
+ EMbmFreestyleemailuiQgn_indi_cmail_arrow_next,
EMbmFreestyleemailuiQgn_indi_cmail_arrow_next_mask );
TRect prevButtonRect = OverlayButtonRect( ETrue );
@@ -411,7 +525,7 @@
CCoeControl::MakeVisible( aVisible );
}
-void CFsEmailUiHtmlViewerContainer::HandleOverlayPointerEventL( COverlayControl* aControl,
+void CFsEmailUiHtmlViewerContainer::HandleOverlayPointerEventL( COverlayControl* aControl,
const TPointerEvent& aEvent )
{
if( aEvent.iType == TPointerEvent::EButton1Up )
@@ -439,7 +553,7 @@
nextAvailable = iAppUi.IsNextMsgAvailable( currentMsgId, tmpMsgId, tmpMsgFolderId );
prevAvailable = iAppUi.IsPreviousMsgAvailable( currentMsgId, tmpMsgId, tmpMsgFolderId );
}
-
+
if( iOverlayControlPrev )
{
iOverlayControlPrev->SetRect( OverlayButtonRect( ETrue ) );
@@ -457,7 +571,7 @@
{
TRect rect = Rect();
TSize size = rect.Size();
-
+
TBool landscape = size.iWidth > size.iHeight;
TInt buttonSize;
@@ -471,7 +585,7 @@
}
rect.iBr.iY = size.iHeight * (1-KOverlayButtonMarginY);
-
+
if( aLeft )
{
rect.iTl.iX = size.iWidth * KOverlayButtonMarginX;
@@ -482,7 +596,7 @@
rect.iBr.iX = size.iWidth * (1 - KOverlayButtonMarginX);
rect.iTl.iX = rect.iBr.iX - buttonSize;
}
-
+
rect.iTl.iY = rect.iBr.iY - buttonSize;
return rect;
}
@@ -525,23 +639,23 @@
// Cancel any browser fetch operation, just in case the browser is still
// loading a previous message (since we are about to overwrite it).
CancelFetch();
-
+
TPath headerHtmlFile;
headerHtmlFile.Copy( iHtmlFolderPath );
headerHtmlFile.Append( KHeaderHtmlFile );
-
+
// insert email header into email.html file
// CFreestyleMessageHeaderHTML will replace contents of email.html
// So, no need to clear the contents
if(aResetScrollPos)
{
- iScrollPosition = 0;
+ iScrollPosition = 0;
}
const TInt visibleWidth(iAppUi.ClientRect().Width());
CFreestyleMessageHeaderHTML::ExportL( *iMessage, iFs, headerHtmlFile, visibleWidth, iScrollPosition,
iViewerSettings->AutoLoadImages() || iAppUi.DisplayImagesCache().Contains(*iMessage),
iHeaderExpanded );
-
+
// Remove all previously created files from temporary HTML folder
EmptyTempHtmlFolderL();
@@ -562,8 +676,11 @@
{
emailHtmlFile.Append( KMessageHtmlRTLFile );
}
+
+ CreateBrowserControlInterfaceL();
+
LoadContentFromFileL( emailHtmlFile );
-
+
UpdateOverlayButtons( ETrue );
}
@@ -576,12 +693,12 @@
FUNC_LOG;
if ( iBrCtlInterface )
{
- TRAP_IGNORE(
+ TRAP_IGNORE(
iBrCtlInterface->HandleCommandL( ( TInt )TBrCtlDefs::ECommandIdBase +
( TInt )TBrCtlDefs::ECommandFreeMemory ) );
if (aDisconnect)
{
- TRAP_IGNORE(
+ TRAP_IGNORE(
iBrCtlInterface->HandleCommandL( ( TInt )TBrCtlDefs::ECommandIdBase +
( TInt )TBrCtlDefs::ECommandDisconnect ) );
}
@@ -640,7 +757,7 @@
{
return 4;
}
- else
+ else
{
return 3;
}
@@ -677,9 +794,9 @@
{
iBrCtlInterface->SetRect( rect );
}
-
+
UpdateOverlayButtons( IsVisible() );
-
+
if ( iStatusIndicator )
{
TRect rect = CalcAttachmentStatusRect();
@@ -695,7 +812,7 @@
const TKeyEvent& aKeyEvent, TEventCode aType )
{
FUNC_LOG;
-
+
TKeyResponse retVal = EKeyWasNotConsumed;
// Handle keyboard shortcuts already on key down event as all keys
@@ -713,9 +830,19 @@
}
}
- else if ( iBrCtlInterface && retVal == EKeyWasNotConsumed )
+ if ( iBrCtlInterface && retVal == EKeyWasNotConsumed )
{
- retVal = iBrCtlInterface->OfferKeyEventL( aKeyEvent, aType );
+ TKeyEvent event = aKeyEvent;
+ if ( iBrCtlInterface->FocusedElementType() == TBrCtlDefs::EElementButton
+ && ( aKeyEvent.iScanCode == EStdKeyNkpEnter
+ || aKeyEvent.iScanCode == EStdKeyEnter ) )
+ {
+ // Enter key events are converted to selection key event in
+ // order to get browser to handle them in similar way.
+ event.iScanCode = EStdKeyDevice3;
+ event.iCode = aKeyEvent.iCode ? EKeyDevice3 : 0;
+ }
+ retVal = iBrCtlInterface->OfferKeyEventL( event, aType );
}
iView.SetMskL();
@@ -806,7 +933,7 @@
{
iAppUi.DownloadInfoMediator()->StopObserving( this );
}
-
+
if ( iMessage && linkContent )
{
CFSMailMessagePart* part = iMessage->ChildPartL( aPart.iMessagePartId );
@@ -820,10 +947,10 @@
CleanupStack::PopAndDestroy( &contentFile );
CleanupStack::PopAndDestroy( part );
}
-
+
if ( iMessage )
{
- LoadContentFromMailMessageL( iMessage, EFalse );
+ LoadContentFromMailMessageL( iMessage, EFalse );
UpdateOverlayButtons( ETrue );
}
}
@@ -907,7 +1034,7 @@
else
{
return iEventHandler->HandleEventL( aUrl );
- }
+ }
}
}
@@ -954,7 +1081,7 @@
//
void CFsEmailUiHtmlViewerContainer::SetTempHtmlFolderPath()
{
- FUNC_LOG;
+ FUNC_LOG;
iTempHtmlFolderPath.Copy( iHtmlFolderPath );
iTempHtmlFolderPath.Append( KTempHtmlPath );
}
@@ -991,7 +1118,7 @@
RFile htmlFile = aHtmlBodyPart.GetContentFileL();
CleanupClosePushL( htmlFile );
-
+
// Read content from given source file
HBufC8* content = ReadContentFromFileLC( htmlFile );
@@ -1014,14 +1141,14 @@
TFileName targetFileName;
targetFileName.Copy( iTempHtmlFolderPath );
targetFileName.Append( aHtmlFileName );
-
+
HBufC* content = HBufC::NewLC( aTextBodyPart.FetchedContentSize() );
TPtr contentPtr( content->Des() );
-
+
aTextBodyPart.GetContentToBufferL( contentPtr, 0 );
-
+
ConvertToHTML( *content, targetFileName, aTextBodyPart );
-
+
CleanupStack::PopAndDestroy( content );
}
@@ -1050,11 +1177,11 @@
const TDesC& aFileName, CFSMailMessagePart& aHtmlBodyPart )
{
FUNC_LOG;
-
+
RBuf8 buffer;
buffer.CreateL( aContent );
buffer.CleanupClosePushL();
-
+
if ( SysUtil::DiskSpaceBelowCriticalLevelL( &iFs, buffer.Size(), EDriveC ) )
{
// Can not write the data, there's not enough free space on disk.
@@ -1064,12 +1191,12 @@
{
RFile targetFile;
CleanupClosePushL( targetFile );
-
+
User::LeaveIfError( targetFile.Replace( iFs, aFileName, EFileWrite ) );
// Try to find initial html tag (both '<html' and '<HTML' versions are searched)
TInt startTagOffset = buffer.Left( KMaxCharsToSearch ).FindF( KStartTag );
-
+
// Modifying text/html atta IF there's no '<html>' tag anywhere in
// the begining of file (KMaxCharsToSearch) AND there is charset
// parameter available
@@ -1084,34 +1211,34 @@
{
HBufC8* charSet = GetCharacterSetL( aHtmlBodyPart );
CleanupStack::PushL( charSet );
-
+
User::LeaveIfError( targetFile.Write( KHtmlHeader1 ) );
User::LeaveIfError( targetFile.Write( *charSet ) );
User::LeaveIfError( targetFile.Write( KHtmlHeader2 ) );
CleanupStack::PopAndDestroy( charSet );
}
- else
+ else
{
// Charset tag not found in html body
-
+
if ( buffer.Left( KMaxCharsToSearch ).FindF( KCharsetTag8 ) == KErrNotFound )
{
TInt startPos(0);
if ( ( startPos = buffer.Left( KMaxCharsToSearch ).FindF( KHeadTag ) ) != KErrNotFound )
- {
-
+ {
+
HBufC8* charSet = GetCharacterSetL( aHtmlBodyPart );
CleanupStack::PushL( charSet );
-
+
HBufC8* metaBuffer = HBufC8::NewLC( charSet->Des().Length() + KHtmlHeader3().Length() );
TPtr8 metaHeader( metaBuffer->Des() );
- metaHeader.AppendFormat( KHtmlHeader3, charSet );
- TInt maxLength = buffer.Length() + metaHeader.Length();
+ metaHeader.AppendFormat( KHtmlHeader3, charSet );
+ TInt maxLength = buffer.Length() + metaHeader.Length();
buffer.ReAllocL( maxLength );
-
+
startPos += KHeadTag().Length();
buffer.Insert( startPos, metaHeader );
-
+
CleanupStack::PopAndDestroy( metaBuffer );
CleanupStack::PopAndDestroy( charSet );
}
@@ -1244,14 +1371,14 @@
partData.iMailBoxId = iMessage->GetMailBoxId();
partData.iFolderId = iMessage->GetFolderId();
partData.iMessageId = iMessage->GetMessageId();
-
+
partData.iMessagePartId = aAttachment.GetPartId();
if ( iAppUi.DownloadInfoMediator() &&
iAppUi.DownloadInfoMediator()->IsDownloadableL( partData ) )
{
ASSERT( iLinkContents.Count() == iMessageParts.Count() );
-
+
// Append message part details and embedded link content interface
// to corresponding arrays so that the content can be returned
// when the download is completed.
@@ -1260,7 +1387,7 @@
{
iLinkContents.Remove( iLinkContents.Count() - 1 );
}
-
+
ASSERT( iLinkContents.Count() == iMessageParts.Count() );
if(!iView.GetAsyncFetchStatus())
{
@@ -1277,7 +1404,7 @@
{
FUNC_LOG;
iHtmlResourceFlagPath.Copy( iHtmlFolderPath );
- iHtmlResourceFlagPath.Append( KHtmlFlagFile );
+ iHtmlResourceFlagPath.Append( KHtmlFlagFile );
}
void CFsEmailUiHtmlViewerContainer::EnableHTMLResourceFlagL()
@@ -1306,11 +1433,11 @@
htmlFolderPathInZ.Append( privatePath );
htmlFolderPathInZ.Append( KHtmlPath );
-
+
CDir* dirList;
TPath listSpec;
listSpec.Copy( htmlFolderPathInZ );
-
+
listSpec.Append( _L("*.*") );
User::LeaveIfError( iFs.GetDir( listSpec, KEntryAttMaskSupported, ESortByName, dirList ) );
CleanupStack::PushL( dirList );
@@ -1319,28 +1446,28 @@
TPath sourceFileFullName;
sourceFileFullName.Copy( htmlFolderPathInZ );
sourceFileFullName.Append( (*dirList)[i].iName );
-
+
TBool isFolder( EFalse );
BaflUtils::IsFolder( iFs, sourceFileFullName, isFolder);
if ( isFolder )
{
- break;
+ break;
}
-
+
TPath targetFileFullName;
targetFileFullName.Copy( iHtmlFolderPath );
targetFileFullName.Append( (*dirList)[i].iName );
- BaflUtils::DeleteFile( iFs, targetFileFullName );
-
+ BaflUtils::DeleteFile( iFs, targetFileFullName );
+
BaflUtils::CopyFile( iFs, sourceFileFullName, targetFileFullName);
- }
+ }
CleanupStack::PopAndDestroy( dirList );
}
void CFsEmailUiHtmlViewerContainer::EnsureHTMLResourceL()
{
FUNC_LOG;
-
+
if ( !HTMLResourceFlagEnabled() )
{
CopyHTMLResourceL();
@@ -1352,203 +1479,24 @@
// Writes buffer content to given file after adding tags
// ---------------------------------------------------------------------------
//
-// <cmail>
void CFsEmailUiHtmlViewerContainer::ConvertToHTML( const TDesC& aContent,
const TDesC& aFileName, CFSMailMessagePart& /*aTextBodyPart*/ )
{
FUNC_LOG;
- const TInt KBodyTextChunkSize = 2048;
-
+
if ( SysUtil::DiskSpaceBelowCriticalLevelL( &iFs, aContent.Size(), EDriveC ) )
- {
- // Can not write the data, there's not enough free space on disk.
- User::Leave( KErrDiskFull );
- }
- else
{
- RBuf bodyBuf;
- bodyBuf.CreateL( aContent.Size() + KBodyTextChunkSize );
- bodyBuf.CleanupClosePushL();
- bodyBuf.Insert( 0, aContent);
- TInt maxlength = bodyBuf.MaxSize();
-
- TInt position( 0 );
- TBool EndOfString( EFalse );
-
- while ( !EndOfString )
- {
- TInt startPosition = position;
- TPtr segment( bodyBuf.MidTPtr( startPosition ) );
- TInt i = 0;
-
- while(i < segment.Length())
- {
- TInt currentPos = position + i;
- TText ch = segment[i];
-
- switch( ch )
- {
- case KSOH: // end of line for IMAP and POP
- bodyBuf.Delete( currentPos, 1 );
- maxlength = maxlength + KHtmlLineBreakCRLF().Length();
- bodyBuf.ReAlloc( maxlength );
- bodyBuf.Insert( currentPos, KHtmlLineBreakCRLF );
- i += KHtmlLineBreakCRLF().Length();
- segment.Set( bodyBuf.MidTPtr( startPosition ) );
- break;
- case KLF: // line feed
- case KUnicodeNewLineCharacter:
- case KUnicodeParagraphCharacter:
- maxlength = maxlength + KHtmlLineBreak().Length();
- bodyBuf.ReAlloc( maxlength );
- bodyBuf.Insert( currentPos, KHtmlLineBreak );
- i += KHtmlLineBreak().Length() + 1;
- segment.Set( bodyBuf.MidTPtr( startPosition ) );
- break;
- case KQuotation:
- bodyBuf.Delete( currentPos, 1 );
- maxlength = maxlength + KHtmlQuotation().Length();
- bodyBuf.ReAlloc( maxlength );
- bodyBuf.Insert( currentPos, KHtmlQuotation );
- i += KHtmlQuotation().Length();
- segment.Set( bodyBuf.MidTPtr( startPosition ) );
- break;
- case KAmpersand:
- bodyBuf.Delete( currentPos, 1 );
- maxlength = maxlength + KHtmlAmpersand().Length();
- bodyBuf.ReAlloc( maxlength );
- bodyBuf.Insert( currentPos, KHtmlAmpersand );
- i += KHtmlAmpersand().Length();
- segment.Set( bodyBuf.MidTPtr( startPosition ) );
- break;
- case KGreaterThan:
- bodyBuf.Delete( currentPos, 1 );
- maxlength = maxlength + KHtmlGreaterThan().Length();
- bodyBuf.ReAlloc( maxlength );
- bodyBuf.Insert( currentPos, KHtmlGreaterThan );
- i += KHtmlGreaterThan().Length();
- segment.Set( bodyBuf.MidTPtr( startPosition ) );
- break;
- case KLessThan:
- bodyBuf.Delete( currentPos, 1 );
- maxlength = maxlength + KHtmlLessThan().Length();
- bodyBuf.ReAlloc( maxlength );
- bodyBuf.Insert( currentPos, KHtmlLessThan );
- i += KHtmlLessThan().Length();
- segment.Set( bodyBuf.MidTPtr( startPosition ) );
- break;
- default:
- i++;
- break;
- }
- }
- position += segment.Length();
- if ( ( bodyBuf.Length() - position ) <= 0 )
- {
- EndOfString = ETrue;
- }
- }
-
- CreateHyperlinksFromUrlsL( bodyBuf );
+ // Can not write the data, there's not enough free space on disk.
+ User::Leave( KErrDiskFull );
+ }
+
+ RBuf htmlText;
+ CleanupClosePushL( htmlText );
- HBufC8* content8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( bodyBuf );
- CleanupStack::PushL( content8 );
-
- RFile targetFile;
- CleanupClosePushL( targetFile );
- User::LeaveIfError( targetFile.Replace( iFs, aFileName, EFileWrite ) );
-
- RBuf8 messageHeader;
- _LIT( KCharsetUtf8, "UTF-8" );
- TInt bufSize = KHtmlHeader1().Length() + KCharsetUtf8().Length() + KHtmlHeader2().Length();
- messageHeader.CreateL( bufSize );
- messageHeader.CleanupClosePushL();
+ PlainTextToHtmlConverter::PlainTextToHtmlL( aContent, htmlText );
+ WriteToFileL( aFileName, htmlText );
- messageHeader.Append( KHtmlHeader1 );
- messageHeader.Append( KCharsetUtf8 );
- messageHeader.Append( KHtmlHeader2 );
-
- RFileWriteStream fileStream( targetFile );
- fileStream.PushL();
- fileStream.WriteL( messageHeader.Ptr(), messageHeader.Length() );
-
- TInt bufPos( 0 );
- TInt bufTotalSize = content8->Size();
-
- while ( bufPos < bufTotalSize )
- {
- TInt segmentLength = content8->Mid( bufPos ).Length();
- fileStream.WriteL( content8->Mid( bufPos ).Ptr(), segmentLength );
- bufPos += segmentLength;
- }
-
- fileStream.CommitL();
-
- CleanupStack::PopAndDestroy( &fileStream );
- CleanupStack::PopAndDestroy( &messageHeader );
- CleanupStack::PopAndDestroy( &targetFile );
- CleanupStack::PopAndDestroy( content8 );
- CleanupStack::PopAndDestroy( &bodyBuf ); // calls bodyBuf.Close();
-
-// </cmail>
- }
- }
-
-// ---------------------------------------------------------------------------
-// Finds and html formats hyperlinks in a document
-// ---------------------------------------------------------------------------
-//
-// <cmail>
-void CFsEmailUiHtmlViewerContainer::CreateHyperlinksFromUrlsL( RBuf& aSource )
- {
- FUNC_LOG;
- const TInt searhCases( CFindItemEngine::EFindItemSearchURLBin );
- CFindItemEngine* itemEngine = CFindItemEngine::NewL( aSource, CFindItemEngine::TFindItemSearchCase( searhCases ) );
- CleanupStack::PushL ( itemEngine );
- if ( itemEngine->ItemCount() > 0 )
- {
- _LIT( KSchemeDelimiter, "://" );
- _LIT( KUrlFormat, "<a href=\"%S\">%S</a>" );
- _LIT( KUrlFormatWithHttp, "<a href=\"http://%S\">%S</a>" );
-
- const TInt sourceLength( aSource.Length() );
- // Allocate enough space for the final result
- aSource.ReAllocL( sourceLength + TotalLengthOfItems( *itemEngine ) + KUrlFormatWithHttp().Length() * itemEngine->ItemCount() );
- aSource.SetMax();
- // Organize buffer so that original data is in the back of the aSource
- aSource.RightTPtr( sourceLength ).Copy( aSource.Left( sourceLength ) );
- // Set source to new original data's position
- const TPtrC source( aSource.RightTPtr( sourceLength ) );
- // Set target to aSource's beginning
- TPtr target( aSource.MidTPtr( 0 ) );
- // Reset length, we now have an empty buffer to fill
- target.SetLength( 0 );
-
- TInt currentSourcePosition( 0 );
- CFindItemEngine::SFoundItem item;
- for ( TBool available( itemEngine->Item( item ) ); available; available = itemEngine->NextItem( item ) )
- {
- target.Append( source.Mid( currentSourcePosition, item.iStartPos - currentSourcePosition ) );
- const TPtrC url( source.Mid( item.iStartPos, item.iLength ) );
- TPtrC format( KUrlFormat() );
- if ( url.FindF( KSchemeDelimiter() ) == KErrNotFound )
- {
- format.Set( KUrlFormatWithHttp() );
- }
- HBufC* formatBuffer = HBufC::NewLC( format.Length() + url.Length() * 2 );
- formatBuffer->Des().Format( format, &url, &url );
- target.Append( *formatBuffer );
- CleanupStack::PopAndDestroy(); // formatBuffer
- currentSourcePosition = item.iStartPos + item.iLength;
- }
- // Append characters that are left in buffer
- if ( currentSourcePosition < sourceLength )
- {
- target.Append( source.Mid( currentSourcePosition, sourceLength - currentSourcePosition ) );
- }
- aSource.SetLength( target.Length() );
- }
- CleanupStack::PopAndDestroy(); // itemEngine
+ CleanupStack::PopAndDestroy( &htmlText );
}
@@ -1573,15 +1521,15 @@
HBufC8* CFsEmailUiHtmlViewerContainer::GetCharacterSetL( CFSMailMessagePart& aHtmlBodyPart )
{
FUNC_LOG;
-
+
CDesCArray& contentTypeArray( aHtmlBodyPart.ContentTypeParameters() );
- HBufC8* charSet = KNullDesC8().AllocLC();
-
+ HBufC8* charSet = KNullDesC8().AllocLC();
+
for ( TInt i = 0; i < contentTypeArray.Count(); i++ )
{
TPtrC contentEntry( contentTypeArray.MdcaPoint( i ) );
if ( ( contentEntry.FindF( KCharsetTag ) != KErrNotFound ) &&
- contentTypeArray.Count() >= ( i+1) )
+ contentTypeArray.Count() >= ( i+1) )
{
TPtrC value( contentTypeArray.MdcaPoint( i+1 ) );
if ( value.Length() )
@@ -1595,7 +1543,7 @@
}
i++;
}
-
+
CleanupStack::Pop( charSet );
return charSet;
}
@@ -1617,8 +1565,8 @@
FUNC_LOG;
if ( iBrCtlInterface )
{
- TRAP_IGNORE( iBrCtlInterface->HandleCommandL( (TInt)TBrCtlDefs::ECommandCancelFetch + (TInt)TBrCtlDefs::ECommandIdBase ));
- }
+ TRAP_IGNORE( iBrCtlInterface->HandleCommandL( (TInt)TBrCtlDefs::ECommandCancelFetch + (TInt)TBrCtlDefs::ECommandIdBase ));
+ }
}
void CFsEmailUiHtmlViewerContainer::ClearCacheAndLoadEmptyContent()
@@ -1626,11 +1574,11 @@
FUNC_LOG;
if ( iBrCtlInterface )
{
- iBrCtlInterface->ClearCache();
+ iBrCtlInterface->ClearCache();
TUid uid;
uid.iUid = KCharacterSetIdentifierUtf8;
TRAP_IGNORE( iBrCtlInterface->LoadDataL(KHTMLDataScheme, KHTMLEmptyContent, _L8("text/html"), uid) );
- }
+ }
}
void CFsEmailUiHtmlViewerContainer::HandleResourceChange( TInt aType )
@@ -1651,20 +1599,20 @@
TPath headerHtmlFile;
headerHtmlFile.Copy( iHtmlFolderPath );
headerHtmlFile.Append( KHeaderHtmlFile );
-
+
TRAP_IGNORE( CFreestyleMessageHeaderHTML::ExportL( *iMessage, iFs,
headerHtmlFile, iAppUi.ClientRect().Width(), iScrollPosition,
iViewerSettings->AutoLoadImages() || iAppUi.DisplayImagesCache().Contains(*iMessage),
iHeaderExpanded ) )
-
-
+
+
if(!iEventHandler->IsMenuVisible())
{
TRAP_IGNORE( ReloadPageL() );
}
else
{
- //Load page asynchronously after dismissing menu
+ //Load page asynchronously after dismissing menu
//this is outdated call because it cancels Action menu which is no longer used in 9.2
// iEventHandler->DismissMenuAndReload();
}
@@ -1677,8 +1625,8 @@
( TInt )TBrCtlDefs::ECommandReload ) );
}
-void CFsEmailUiHtmlViewerContainer::ShowAttachmentDownloadStatusL(
- TFSProgress::TFSProgressStatus aProgressStatus,
+void CFsEmailUiHtmlViewerContainer::ShowAttachmentDownloadStatusL(
+ TFSProgress::TFSProgressStatus aProgressStatus,
const TAttachmentData& aAttachmentData )
{
TBool freshDraw = EFalse;
@@ -1699,18 +1647,18 @@
TRect rect = CalcAttachmentStatusRect();
iStatusIndicator = CFreestyleEmailUiAknStatusIndicator::NewL( rect, this );
freshDraw = ETrue;
- }
-
- if ( !iStatusIndicator->IsVisible()
- || ( aAttachmentData.downloadProgress == KNone )
+ }
+
+ if ( !iStatusIndicator->IsVisible()
+ || ( aAttachmentData.downloadProgress == KNone )
|| ( aProgressStatus == TFSProgress::EFSStatus_RequestCancelled ) )
{
freshDraw = ETrue;
}
-
+
TInt duration = KStatusIndicatorDefaultDuration;
- if ( ( aAttachmentData.downloadProgress == TFSProgress::EFSStatus_RequestComplete )
- || ( aProgressStatus == TFSProgress::EFSStatus_RequestCancelled )
+ if ( ( aAttachmentData.downloadProgress == TFSProgress::EFSStatus_RequestComplete )
+ || ( aProgressStatus == TFSProgress::EFSStatus_RequestCancelled )
|| ( aAttachmentData.downloadProgress == KComplete ) )
{
duration = KStatusIndicatorAutomaticHidingDuration;
@@ -1728,22 +1676,22 @@
CArrayFix<TInt>* intArray = new (ELeave) CArrayFixFlat<TInt>( 1 );
CleanupStack::PushL( intArray );
intArray->AppendL( aAttachmentData.downloadProgress );
-
+
statusText = StringLoader::LoadL( R_FSE_VIEWER_ATTACHMENTS_LIST_DOWNLOAD,
- *descArray,
+ *descArray,
*intArray );
CleanupStack::PopAndDestroy( intArray );
CleanupStack::PopAndDestroy( descArray );
CleanupStack::PushL( statusText );
}
break;
-
+
case TFSProgress::EFSStatus_RequestCancelled:
{
statusText = aAttachmentData.fileName.AllocLC();
}
break;
-
+
default:
statusText = KNullDesC().AllocLC();
break;
@@ -1778,7 +1726,7 @@
}
}
}
-
+
CleanupStack::Pop( statusText );
}
@@ -1824,7 +1772,7 @@
TRect rect = Rect();
TPoint topLeft = rect.iTl;
TPoint bottomRight = rect.iBr;
-
+
TPoint statusTopLeft( topLeft.iX + KStatusIndicatorXMargin, bottomRight.iY - KStatusIndicatorHeight + 1 );
TPoint statusBottomRight( bottomRight.iX - KStatusIndicatorXMargin, bottomRight.iY );
return TRect( statusTopLeft, statusBottomRight );
@@ -1832,13 +1780,13 @@
void CFsEmailUiHtmlViewerContainer::TouchFeedback()
{
- iTouchFeedBack->InstantFeedback(this, ETouchFeedbackBasic);
+ iTouchFeedBack->InstantFeedback(this, ETouchFeedbackBasic);
}
/**
* The body fetch link is cmail://body/fetch. Look for the URL separator
* and the presence of cmail and body on the url.
- * @param aUrl
+ * @param aUrl
* return ETrue for a valid body URL
*/
TBool CFsEmailUiHtmlViewerContainer::IsMessageBodyURLL(const TDesC& aUrl)
@@ -1875,11 +1823,11 @@
{
TouchFeedback();
iHeaderExpanded = ETrue;
- return ETrue;
+ return ETrue;
}
else if (aUrl.Left(index).CompareF(KURLSchemeCmail) == 0)
{
- TInt bodyIndex = aUrl.Find(KURLTypeBody);
+ TInt bodyIndex = aUrl.Find(KURLTypeBody);
if (bodyIndex == KErrNotFound)
{
return EFalse;
@@ -1896,24 +1844,24 @@
{
TPtrC16 temp = data.Mid(separator+1);
TLex lex(temp);
- lex.Val(iScrollPosition);
+ lex.Val(iScrollPosition);
}
return ETrue;
}
-
+
}
else
{
return EFalse;
}
}
- }
+ }
// ---------------------------------------------------------------------------
// From MBrCtlWindowObserver
// ---------------------------------------------------------------------------
//
-CBrCtlInterface* CFsEmailUiHtmlViewerContainer::OpenWindowL( TDesC& /*aUrl*/, TDesC* /*aTargetName*/,
+CBrCtlInterface* CFsEmailUiHtmlViewerContainer::OpenWindowL( TDesC& /*aUrl*/, TDesC* /*aTargetName*/,
TBool /*aUserInitiated*/, TAny* /*aReserved*/ )
{
return iBrCtlInterface;
@@ -1932,10 +1880,10 @@
// From MBrCtlWindowObserver
// ---------------------------------------------------------------------------
//
-void CFsEmailUiHtmlViewerContainer::HandleWindowCommandL( const TDesC& /*aTargetName*/,
+void CFsEmailUiHtmlViewerContainer::HandleWindowCommandL( const TDesC& /*aTargetName*/,
TBrCtlWindowCommand /*aCommand*/ )
{
-
+
}
// ---------------------------------------------------------------------------
@@ -1948,7 +1896,7 @@
// look for file:///
_LIT( KFileLink, "file:///");
_LIT( KUrlLink, "http");
-
+
// This might be linking to header.html or body.html frames
// Ignore them.
if ( aUrl.Left( KFileLink().Length() ).CompareF( KFileLink ) == 0 )
@@ -1957,7 +1905,7 @@
// Replace all slash character with backslash characters
HBufC* embeddedUrl = aUrl.AllocLC();
TPtr ptr = embeddedUrl->Des();
-
+
_LIT( KBackslash, "\\" );
for ( TInt pos = ptr.Locate('/'); pos >= 0; pos = ptr.Locate('/') )
{
@@ -1967,14 +1915,14 @@
// Check whether given url refers to file in the html folder
TInt pos = embeddedUrl->FindF( iHtmlFolderPath );
CleanupStack::PopAndDestroy( embeddedUrl );
- pos >= 0 ? launchBrowser = EFalse : ETrue;
+ pos >= 0 ? launchBrowser = EFalse : ETrue;
}
// Ignore links starting with cmail://
else if ( aUrl.Left( KURLSchemeCmail().Length() ).CompareF( KURLSchemeCmail ) == 0 )
{
launchBrowser = EFalse;
}
- // THAA-82BEAZ - show popup first
+ // THAA-82BEAZ - show popup first
else if ( aUrl.Left(KUrlLink().Length() ).CompareF( KUrlLink ) == 0 )
{
launchBrowser = EFalse;
@@ -1998,7 +1946,7 @@
void CFsEmailUiHtmlViewerContainer::PrepareBodyHtmlL( const TDesC& aFileName )
{
-
+
if( iMessage )
{
CFSMailMessagePart* htmlBodyPart = iMessage->HtmlBodyPartL();
@@ -2013,7 +1961,7 @@
else
{
CFSMailMessagePart* textBodyPart = iMessage->PlainTextBodyPartL();
-
+
if ( textBodyPart )
{
CleanupStack::PushL( textBodyPart );
@@ -2065,3 +2013,178 @@
UpdateOverlayButtons( IsVisible() );
}
+
+void CFsEmailUiHtmlViewerContainer::WriteToFileL(const TDesC& aFileName, RBuf& aHtmlText)
+ {
+ _LIT( KCharsetUtf8, "UTF-8" );
+
+ HBufC8* content8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( aHtmlText );
+ CleanupStack::PushL( content8 );
+
+ RFile targetFile;
+ CleanupClosePushL( targetFile );
+ User::LeaveIfError( targetFile.Replace( iFs, aFileName, EFileWrite ) );
+
+ RBuf8 messageHeader;
+ TInt bufSize = KHtmlHeader1().Length() + KCharsetUtf8().Length() + KHtmlHeader2().Length();
+ messageHeader.CreateL( bufSize );
+ messageHeader.CleanupClosePushL();
+
+ messageHeader.Append( KHtmlHeader1 );
+ messageHeader.Append( KCharsetUtf8 );
+ messageHeader.Append( KHtmlHeader2 );
+
+ RFileWriteStream fileStream( targetFile );
+ fileStream.PushL();
+ fileStream.WriteL( messageHeader.Ptr(), messageHeader.Length() );
+
+ TInt bufPos( 0 );
+ TInt bufTotalSize = content8->Size();
+
+ while ( bufPos < bufTotalSize )
+ {
+ TInt segmentLength = content8->Mid( bufPos ).Length();
+ fileStream.WriteL( content8->Mid( bufPos ).Ptr(), segmentLength );
+ bufPos += segmentLength;
+ }
+
+ fileStream.CommitL();
+
+ CleanupStack::PopAndDestroy( &fileStream );
+ CleanupStack::PopAndDestroy( &messageHeader );
+ CleanupStack::PopAndDestroy( &targetFile );
+ CleanupStack::PopAndDestroy( content8 );
+ }
+
+
+
+/******************************************************************************
+ * class PlainTextToHtmlConverter
+ ******************************************************************************/
+
+
+
+// -----------------------------------------------------------------------------
+// PlainTextToHtmlConverter::PlainTextToHtmlL
+//
+// -----------------------------------------------------------------------------
+//
+void PlainTextToHtmlConverter::PlainTextToHtmlL(const TDesC& aPlainText, RBuf& aHtmlText)
+ {
+ const TInt KAllocSize = 1024;
+
+ aHtmlText.Close();
+ aHtmlText.Create( aPlainText.Length() + KAllocSize );
+
+ const TInt searhCases( CFindItemEngine::EFindItemSearchURLBin );
+ CFindItemEngine* itemEngine = CFindItemEngine::NewL( aPlainText, CFindItemEngine::TFindItemSearchCase( searhCases ) );
+ CleanupStack::PushL ( itemEngine );
+
+ TInt currentPos = 0;
+ CFindItemEngine::SFoundItem item;
+ for ( TBool available(itemEngine->Item(item)); available; available=itemEngine->NextItem(item) )
+ {
+ if ( item.iStartPos < currentPos )
+ {
+ break;
+ }
+
+ TPtrC textPtr = aPlainText.Mid( currentPos, item.iStartPos-currentPos );
+ ConvertTextL( textPtr, aHtmlText );
+
+ TPtrC urlPtr = aPlainText.Mid( item.iStartPos, item.iLength );
+ ConvertUrlL( urlPtr, aHtmlText);
+
+ currentPos = item.iStartPos + item.iLength;
+ }
+
+ TInt len = aPlainText.Length();
+ if ( currentPos < len )
+ {
+ TPtrC textPtr = aPlainText.Mid( currentPos );
+ ConvertTextL( textPtr, aHtmlText );
+ }
+
+ CleanupStack::PopAndDestroy( itemEngine );
+ }
+
+
+// -----------------------------------------------------------------------------
+// PlainTextToHtmlConverter::ConvertTextL
+//
+// -----------------------------------------------------------------------------
+//
+void PlainTextToHtmlConverter::ConvertTextL(const TDesC& aSource, RBuf& aTarget)
+ {
+ const TInt KAllocSize = 1024;
+ const TInt KEntitySize = 32;
+
+ TInt count = aSource.Length();
+ for ( TInt i=0; i<count; i++ )
+ {
+ if ( aTarget.Length() + KEntitySize >= aTarget.MaxLength() )
+ {
+ aTarget.ReAllocL( aTarget.MaxLength() + KAllocSize );
+ }
+
+ TText ch = aSource[i];
+ switch( ch )
+ {
+ case KSOH: // end of line for IMAP and POP
+ aTarget.Append( KHtmlLineBreakCRLF );
+ break;
+ case KLF: // line feed
+ case KUnicodeNewLineCharacter:
+ case KUnicodeParagraphCharacter:
+ aTarget.Append(KHtmlLineBreak);
+ break;
+ case KQuotation:
+ aTarget.Append( KHtmlQuotation );
+ break;
+ case KAmpersand:
+ aTarget.Append( KHtmlAmpersand );
+ break;
+ case KGreaterThan:
+ aTarget.Append( KHtmlGreaterThan );
+ break;
+ case KLessThan:
+ aTarget.Append( KHtmlLessThan );
+ break;
+ default:
+ aTarget.Append( ch );
+ break;
+ }
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// PlainTextToHtmlConverter::ConvertUrlL
+//
+// -----------------------------------------------------------------------------
+//
+void PlainTextToHtmlConverter::ConvertUrlL(const TDesC& aSource, RBuf& aTarget)
+ {
+ _LIT( KSchemeDelimiter, "://" );
+ _LIT( KUrlFormat, "<a href=\"%S\">%S</a>" );
+ _LIT( KUrlFormatWithHttp, "<a href=\"http://%S\">%S</a>" );
+
+ TPtrC format( KUrlFormat() );
+ if ( aSource.FindF( KSchemeDelimiter() ) == KErrNotFound )
+ {
+ format.Set( KUrlFormatWithHttp() );
+ }
+
+ HBufC* formatBuffer = HBufC::NewLC( format.Length() + aSource.Length() * 2 );
+ formatBuffer->Des().Format( format, &aSource, &aSource );
+
+ TInt len = formatBuffer->Des().Length();
+ if ( aTarget.Length() + len >= aTarget.MaxLength() )
+ {
+ aTarget.ReAllocL( aTarget.MaxLength() + len );
+ }
+
+ aTarget.Append( *formatBuffer );
+
+ CleanupStack::PopAndDestroy( formatBuffer );
+ }
--- a/emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp Tue May 11 15:57:15 2010 +0300
@@ -64,10 +64,6 @@
#include "FreestyleMessageHeaderURL.h"
#include "FreestyleEmailUiAknStatusIndicator.h"
#include <akntoolbar.h>
-// CONSTANTS
-// Zoom levels available on the UI
-const TInt KZoomLevels[] = { 75, 100, 125, 150 };
-const TInt KZoomLevelCount = sizeof( KZoomLevels ) / sizeof( TInt );
CFsEmailUiHtmlViewerView* CFsEmailUiHtmlViewerView::NewL(
CAlfEnv& aEnv,
@@ -292,14 +288,12 @@
break;
case EFsEmailUiCmdZoomIn:
{
- TUint zoomLevelIdx = ZoomLevelIndexL();
- SetZoomLevelIndexL( zoomLevelIdx + 1 );
+ iContainer->ZoomInL();
}
break;
case EFsEmailUiCmdZoomOut:
{
- TUint zoomLevelIdx = ZoomLevelIndexL();
- SetZoomLevelIndexL( zoomLevelIdx - 1 );
+ iContainer->ZoomOutL();
}
break;
case EFsEmailUiCmdHelp:
@@ -388,11 +382,12 @@
break;
default:
{
+ /* -- pinch zoom only --
if ( aCommand >= EFsEmailUiCmdZoomSmall )
{
- TUint zoomLevelIndex = aCommand - EFsEmailUiCmdZoomSmall;
- SetZoomLevelIndexL( zoomLevelIndex );
+ iContainer->SetZoomLevelL( aCommand - EFsEmailUiCmdZoomSmall );
}
+ */
}
break;
}
@@ -953,7 +948,9 @@
if ( aResourceId == R_FSEMAILUI_HTMLVIEWER_MENUPANE )
{
-
+ // Pinch zoom only
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdZoomLevel, ETrue );
+
if ( FeatureManager::FeatureSupported( KFeatureIdFfCmailIntegration ) )
{
// remove help support in pf5250
@@ -1194,6 +1191,12 @@
return;
}
+ TFSMailMsgId currentMsgId = iMessage->GetMessageId();
+ if ( iLastDeletedMessageID == currentMsgId )
+ {
+ return;
+ }
+
TInt reallyDelete( ETrue );
if ( iAppUi.GetCRHandler()->WarnBeforeDelete() &&
@@ -1216,7 +1219,7 @@
RArray<TFSMailMsgId> msgIds;
CleanupClosePushL( msgIds );
- TFSMailMsgId currentMsgId = iMessage->GetMessageId();
+
msgIds.Append( currentMsgId );
TFSMailMsgId mailBox = iMessage->GetMailBoxId();
TFSMailMsgId folderId = iMessage->GetFolderId();
@@ -1231,6 +1234,7 @@
prevMsgFolderId );
//Delete the message
+ iLastDeletedMessageID = iMessage->GetMessageId();
iAppUi.GetMailClient()->DeleteMessagesByUidL( mailBox, folderId, msgIds );
CleanupStack::PopAndDestroy( &msgIds );
@@ -1238,7 +1242,6 @@
SendEventToAppUiL( TFSEventMailDeletedFromViewer );
-
if ( iAppUi.CurrentActiveView()->Id() == HtmlViewerId )
{
//Open the previous message or navigate back to list viewer
@@ -1322,92 +1325,21 @@
void CFsEmailUiHtmlViewerView::DynInitZoomMenuL( CEikMenuPane* aMenuPane )
{
- FUNC_LOG;
- TInt zoomLevelIdx = ZoomLevelIndexL();
+ FUNC_LOG;
+ /* -- Pinch zoom only --
+ TInt zoomLevelIdx = iContainer->ZoomLevelL();
// Set the radio button state to match current zoom level
- if ( zoomLevelIdx >= 0 && zoomLevelIdx < KZoomLevelCount )
+ if ( zoomLevelIdx >= 0 && zoomLevelIdx < iContainer->MaxZoomLevel() )
{
TInt curZoomLevel = zoomLevelIdx + EFsEmailUiCmdZoomSmall;
aMenuPane->SetItemButtonState( curZoomLevel, EEikMenuItemSymbolOn );
}
- }
-
-TInt CFsEmailUiHtmlViewerView::ZoomLevelIndexL()
- {
- FUNC_LOG;
- TInt zoomLevelIdx = iContainer->BrowserControlIf()->BrowserSettingL(
- TBrCtlDefs::ESettingsCurrentZoomLevelIndex );
-
- // Behaviour of zooming in Browser Control Interface is different in version 7.1
- // than in previous versions and we need to support both. In older versions there
- // are 4 preset zoom levels while version 7.1 can zoom to any percent.
- RArray<TUint>* zoomLevels = iContainer->BrowserControlIf()->ZoomLevels();
-
- if ( !zoomLevels || !zoomLevels->Count() || ( *zoomLevels )[0] != KZoomLevels[0] )
- {
- // new browser:
- // BrowserControlIf gives zoom level percentage insted of index to array
- TBool found = EFalse;
-
- for ( TInt i = 0 ; i < KZoomLevelCount && !found ; ++i )
- {
- if ( zoomLevelIdx == KZoomLevels[i] )
- {
- zoomLevelIdx = i;
- found = ETrue;
- }
- }
-
- if ( !found )
- {
- zoomLevelIdx = KErrNotFound;
- }
- }
-
- return zoomLevelIdx;
- }
-
-void CFsEmailUiHtmlViewerView::SetZoomLevelIndexL( TInt aIndex )
- {
- FUNC_LOG;
- TInt newValue = KMinTInt;
-
- // Behaviour of zooming in Browser Control Interface is different in version 7.1
- // than in previous versions and we need to support both. In older versions there
- // are 4 preset zoom levels while version 7.1 can zoom to any percent.
- RArray<TUint>* zoomLevels = iContainer->BrowserControlIf()->ZoomLevels();
-
- if ( !zoomLevels || !zoomLevels->Count() || ( *zoomLevels )[0] != KZoomLevels[0] )
- {
- // new browser:
- // BrowserControlIf takes zoom level percentage insted of index to array
- if ( aIndex >= 0 && aIndex < KZoomLevelCount )
- {
- newValue = KZoomLevels[aIndex];
- }
- }
- else
- {
- // old browser
- newValue = aIndex;
- }
-
- if ( newValue > KMinTInt )
- {
- iContainer->BrowserControlIf()->SetBrowserSettingL(
- TBrCtlDefs::ESettingsCurrentZoomLevelIndex, newValue );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CFsEmailUiHtmlViewerView::RestoreZoomLevelL()
-// -----------------------------------------------------------------------------
-//
-void CFsEmailUiHtmlViewerView::RestoreZoomLevelL()
- {
- FUNC_LOG;
- SetZoomLevelIndexL( ZoomLevelIndexL() );
+ */
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdZoomSmall, ETrue );
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdZoomNormal, ETrue );
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdZoomLarge, ETrue );
+ aMenuPane->SetItemDimmed( EFsEmailUiCmdZoom150Percent, ETrue );
}
// -----------------------------------------------------------------------------
@@ -1645,7 +1577,6 @@
void CFsEmailUiHtmlViewerView::DownloadAttachmentL( const TAttachmentData& aAttachment )
{
- iAppUi.DownloadInfoMediator()->AddObserver( this, aAttachment.partData.iMessageId );
iAttachmentsListModel->StartDownloadL(aAttachment);
}
@@ -1794,12 +1725,6 @@
iContainer->ShowAttachmentDownloadStatusL( aEvent.iProgressStatus, *attachment );
}
-
- if (aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete ||
- aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestCancelled)
- {
- iAppUi.DownloadInfoMediator()->StopObserving( this, aPart.iMessageId );
- }
}
void CFsEmailUiHtmlViewerView::RequestResponseL( const TFSProgress& aEvent, const TPartData& aPart )
@@ -1981,11 +1906,6 @@
iAppUi.MoveToNextMsgL( currentMsgId, nextMsgId );
// Next message is displayed in this view through doactivate, because view is re-activate by mail list
-
- if ( iContainer )
- {
- RestoreZoomLevelL();
- }
}
}
}
@@ -2033,11 +1953,6 @@
iAppUi.MoveToPreviousMsgL( currentMsgId, prevMsgId );
// Previous message is displayed in this view through doactivate, because view is re-activate by mail list
-
- if ( iContainer )
- {
- RestoreZoomLevelL();
- }
}
}
}
--- a/emailuis/emailui/src/FreestyleEmailUiLauncherGridVisualiser.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiLauncherGridVisualiser.cpp Tue May 11 15:57:15 2010 +0300
@@ -713,6 +713,7 @@
{
FUNC_LOG;
iScrollbar->MakeVisible(EFalse);
+ FadeOut(ETrue); // hide CAlfVisuals on deactivation
}
void CFSEmailUiLauncherGridVisualiser::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
@@ -1839,6 +1840,20 @@
aLayoutArray.AppendL( iParentLayout );
}
+// hide or show CAlfVisuals ( used for activation or deactivation )
+void CFSEmailUiLauncherGridVisualiser::FadeOut(TBool aDirectionOut)
+ {
+ if ( iParentLayout != NULL )
+ {
+ TAlfTimedValue timedValue( 0, 0 );
+ if ( !aDirectionOut )
+ {
+ timedValue.SetTarget( 1, 0 );
+ }
+ iParentLayout->SetOpacity( timedValue );
+ }
+ }
+
// -----------------------------------------------------------------------------
// CFSEmailUiLauncherGridVisualiser::ShowMailboxSelectionQueryL
// -----------------------------------------------------------------------------
--- a/emailuis/emailui/src/FreestyleEmailUiLayoutHandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiLayoutHandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -1070,21 +1070,12 @@
}
// -----------------------------------------------------------------------------
-// CFSEmailUiLayoutHandler::PcsPopupHighlightColor
+// CFSEmailUiLayoutHandler::PcsPopupDimmedFontTransparency
// -----------------------------------------------------------------------------
-TRgb CFSEmailUiLayoutHandler::PcsPopupHighlightColor() const
+TInt CFSEmailUiLayoutHandler::PcsPopupDimmedFontTransparency() const
{
FUNC_LOG;
- return KPcsPopupHighlightColor;
- }
-
-// -----------------------------------------------------------------------------
-// CFSEmailUiLayoutHandler::PcsPopupDimmedFontColor
-// -----------------------------------------------------------------------------
-TRgb CFSEmailUiLayoutHandler::PcsPopupDimmedFontColor() const
- {
- FUNC_LOG;
- return KPcsPopupDimmedFontColor;
+ return KPcsPopupDimmedFontTransparency;
}
// -----------------------------------------------------------------------------
--- a/emailuis/emailui/src/FreestyleEmailUiMailListVisualiser.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiMailListVisualiser.cpp Tue May 11 15:57:15 2010 +0300
@@ -556,10 +556,12 @@
CFSEmailUiMailListVisualiser::~CFSEmailUiMailListVisualiser()
{
FUNC_LOG;
+/*
if (iExtension)
{
iAppUi.GetMailClient()->ReleaseExtension(iExtension);
}
+*/
SafeDelete(iMailListModelUpdater);
SafeDelete(iMailFolder);
delete iTouchManager;
@@ -1370,9 +1372,16 @@
TRect clientRect = iAppUi.ClientRect();
iScreenAnchorLayout->SetSize( clientRect.Size() );
SetMailListLayoutAnchors();
- ScaleControlBarL();
- SetListAndCtrlBarFocusL();
-
+ //if the view is already active don't update the icons so they won't "blink"
+ //when the view is activated.
+ if(!iThisViewActive)
+ {
+ ScaleControlBarL();
+ SetListAndCtrlBarFocusL();
+ }
+
+ FadeOut(EFalse); // we can show now CAlfVisuals from CurrentView (to show Folders before updating emails)
+
// Update mail list settings and date formats, is done every time
// the user might have changed these in settings, so the list needs to refresh
// Store previous modes
@@ -1387,9 +1396,13 @@
UpdateMailListTimeDateSettings();
// Check for changed settings, in that case a complete list refresh is needed
- TBool refreshNeeded(EFalse);
- if ( aCustomMessageId == KStartListWithFolderIdFromHomeScreen
- || iSkinChanged
+ TRefreshState refreshState = ERefreshNone;
+ if (aCustomMessageId == KStartListWithFolderIdFromHomeScreen)
+ {
+ refreshState = EFocusChangeNeeded;
+ }
+
+ if ( iSkinChanged
|| iDateChanged
|| iListMode != prevListMode
|| iNodesInUse != prevNodesmode
@@ -1400,7 +1413,7 @@
|| prevDateFormats.iDateSeparator.GetNumericValue() != iDateFormats.iDateSeparator.GetNumericValue()
|| prevDateFormats.iTimeSeparator.GetNumericValue() != iDateFormats.iTimeSeparator.GetNumericValue() )
{
- refreshNeeded = ETrue;
+ refreshState = EFullRefreshNeeded;
iSkinChanged = EFalse;
iDateChanged = EFalse;
}
@@ -1543,7 +1556,7 @@
iFolderListButton->SetTextL( *newFolderName );
CleanupStack::PopAndDestroy( newFolderName );
iMailList->SetFocusedItemL( KFsTreeNoneID );
- refreshNeeded = ETrue;
+ refreshState = EFullRefreshNeeded;
}
// Set mailbox name to status pane
@@ -1557,7 +1570,7 @@
ConnectionIconHandling();
// REBUILD TREE LIST IF NECESSARY
- if ( refreshNeeded )
+ if ( refreshState == EFullRefreshNeeded )
{
// Try to maintain previously active item if possible.
// This is of course not possible if folder has changed.
@@ -1581,6 +1594,18 @@
UpdateMailListModelAsyncL();
}
}
+ else if(refreshState == EFocusChangeNeeded)
+ {//Move focus to the beginning of the list
+ TInt firstIndex(0);
+ TFsTreeItemId firstItemId = iMailList->Child( KFsTreeRootID, firstIndex );
+ iMailTreeListVisualizer->SetFocusedItemL( firstItemId, EFalse );
+ //if the view is already active don't update the list so it won't "blink"
+ //when the view is activated.
+ if(!iThisViewActive)
+ {
+ iMailList->ShowListL();
+ }
+ }
// THE CORRECT FOLDER IS ALREADY OPEN. CHECK IF SOME PARTIAL UPDATE IS NEEDED.
else
{
@@ -1673,6 +1698,7 @@
iMailTreeListVisualizer->NotifyControlVisibilityChange( EFalse );
}
iThisViewActive = EFalse;
+ FadeOut(ETrue); // hide CAlfVisuals on deactivation
}
// ---------------------------------------------------------------------------
@@ -1780,44 +1806,6 @@
// MAIN MENU ***************************************************************************
if ( aResourceId == R_FSEMAILUI_MAILLIST_MENUPANE )
{
- // Sync/cancel sync
- CFSMailBox* activeMailbox = iAppUi.GetActiveMailbox();
- TBool supportsSync = activeMailbox->HasCapability( EFSMBoxCapaSupportsSync );
- TFSMailBoxStatus onlineStatus = activeMailbox->GetMailBoxStatus();
- if ( onlineStatus == EFSMailBoxOnline &&
- KIpsPlgImap4PluginUid == activeMailbox->GetId().PluginId() )
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
- }
-
- // flag to hide or show SyncButton
- TBool hideSync = GetLatestSyncState();
- if(activeMailbox->CurrentSyncState()==StartingSync) hideSync=EFalse;
-
- // hide or show options: Sync/cancel sync
- if ( !supportsSync )
- {
- // POP3 behaviour
- if( onlineStatus == EFSMailBoxOnline || iMailListModelUpdater->IsUpdating() )
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, EFalse );
- aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
- }
- else
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, ETrue );
- aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, EFalse );
- }
- }
- else if ( hideSync || iMailListModelUpdater->IsUpdating() )
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
- }
- else
- {
- aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, ETrue );
- }
-
// Saves a focus visibility.
iLastFocus = EFalse;
if( iFocusedControl == EMailListComponent && IsFocusShown() )
@@ -2226,13 +2214,10 @@
// Change background to marking mode
DisplayMarkingModeBgL( ETrue );
// Hide drop down menu buttons
- if( Layout_Meta_Data::IsLandscapeOrientation() )
- {
- iNewEmailButton->SetDimmed();
- iFolderListButton->SetDimmed();
- iSortButton->SetDimmed();
- }
- else
+ iNewEmailButton->SetDimmed();
+ iFolderListButton->SetDimmed();
+ iSortButton->SetDimmed();
+ if( !Layout_Meta_Data::IsLandscapeOrientation() )
{
TRect rect(0,0,0,0);
iControlBarControl->SetRectL( rect );
@@ -4059,13 +4044,12 @@
TBool supportsSync = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaSupportsSync );
if ( supportsSync )
{
- //If synchronizing is ongoing and a new sync is started we ignore it
- if(!GetLatestSyncState())
+ // If synchronizing is ongoing and a new sync is started we ignore it
+ if( !GetLatestSyncState() )
{
iAppUi.SyncActiveMailBoxL();
// Sync was started by the user
- ManualMailBoxSync(ETrue);
- iAppUi.ManualMailBoxSync( ETrue );
+ ManualMailBoxSync( ETrue );
}
}
else
@@ -4075,24 +4059,7 @@
}
}
break;
- case EFsEmailUiCmdCancelSync:
- {
- TBool supportsSync = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaSupportsSync );
- if ( supportsSync )
- {
- iAppUi.StopActiveMailBoxSyncL();
- // Sync was started by the user
- ManualMailBoxSync(ETrue);
- iAppUi.ManualMailBoxSync( ETrue );
- }
- else
- {
- //POP3
- iAppUi.GetActiveMailbox()->GoOfflineL();
- }
- }
- break;
- case EFsEmailUiCmdGoOffline:
+ case EFsEmailUiCmdGoOffline:
{
iAppUi.GetActiveMailbox()->GoOfflineL();
}
@@ -4100,7 +4067,6 @@
case EFsEmailUiCmdGoOnline:
{
CFSMailBox* mb = iAppUi.GetActiveMailbox();
- iAppUi.ManualMailBoxSync( ETrue );
mb->GoOnlineL();
}
break;
@@ -7220,8 +7186,9 @@
iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdMarkAsRead, !IsMarkAsReadAvailableL() );
// Check support for object mail iten moving
- TBool supportsMoving = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder );
- iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdActionsMoveMessage, !supportsMoving );
+ iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdActionsMoveMessage,
+ !(iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder )
+ && iMailFolder->SupportsMoveFromL( iMailFolder->GetFolderType() ) ) );
// Hide / show follow up
TBool supportsFlag = TFsEmailUiUtility::IsFollowUpSupported( *iAppUi.GetActiveMailbox() );
@@ -8039,6 +8006,25 @@
aLayoutArray.AppendL( iControlBarControl->Visual() );
}
+// hide or show CAlfVisuals ( used for activation or deactivation )
+void CFSEmailUiMailListVisualiser::FadeOut(TBool aDirectionOut)
+ {
+ FUNC_LOG;
+ TAlfTimedValue timedValue( 0, 0 );
+ if ( !aDirectionOut )
+ {
+ timedValue.SetTarget( 1, 0 );
+ }
+ if ( iScreenAnchorLayout != NULL )
+ {
+ iScreenAnchorLayout->SetOpacity( timedValue );
+ }
+ if (iControlBarControl && iControlBarControl->Visual() != NULL )
+ {
+ iControlBarControl->Visual()->SetOpacity( timedValue );
+ }
+ }
+
// Sets aActiveMailboxId and aActiveFolderId from iMailFolder if available
TInt CFSEmailUiMailListVisualiser::GetActiveFolderId(TFSMailMsgId& aActiveMailboxId, TFSMailMsgId& aActiveFolderId) const
{
--- a/emailuis/emailui/src/FreestyleEmailUiUtilities.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiUtilities.cpp Tue May 11 15:57:15 2010 +0300
@@ -1522,6 +1522,7 @@
{
FUNC_LOG;
RPointerArray<CFSMailMessagePart> attachments;
+ CleanupResetAndDestroyClosePushL( attachments );
aMsg.AttachmentListL( attachments );
TBool found = EFalse;
for ( TInt i=0; i<attachments.Count(); i++ )
@@ -1532,7 +1533,7 @@
break;
}
}
- attachments.ResetAndDestroy();
+ CleanupStack::PopAndDestroy( &attachments);
return found;
}
--- a/emailuis/emailui/src/FreestyleEmailUiViewBase.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiViewBase.cpp Tue May 11 15:57:15 2010 +0300
@@ -277,7 +277,19 @@
}
// ---------------------------------------------------------------------------
+// virtual function to hide or show CAlfVisuals ( used for activation or deactivation )
+//
+void CFsEmailUiViewBase::FadeOut(TBool aDirectionOut )
+ {
+ FUNC_LOG;
+ // should be overriden ( if needed ) to use polymorphism
+ // to hide or show CAlfVisuals used in views
+ }
+
+
+// ---------------------------------------------------------------------------
// Check if transition effects are enabled and run the effect if needed.
+// if not enabled it calls FadeOut virtual methods only
//
void CFsEmailUiViewBase::DoTransition( TBool aDirectionOut )
{
@@ -286,6 +298,11 @@
{
DoTransitionEffect( aDirectionOut );
}
+ else
+ {
+ // FadeOut method should be overridden and use by polymorphism only when needed
+ FadeOut( aDirectionOut ); // used for hide/show visuals without transition time
+ }
}
// ---------------------------------------------------------------------------
--- a/emailuis/emailui/src/FreestyleMessageHeaderHTML.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleMessageHeaderHTML.cpp Tue May 11 15:57:15 2010 +0300
@@ -33,14 +33,16 @@
-_LIT8( KShowDetailIconFileName, "plus.gif");
+_LIT8( KExpandHeaderIconFileName, "plus.gif");
+_LIT8( KCollapseHeaderIconFileName, "minus.gif");
_LIT8( KAttachementIconGeneral, "attachment.gif");
_LIT8( KFollowUpIconFileName, "follow_up.png");
_LIT8( KFollowUpCompleteIconFileName, "follow_up_complete.png");
_LIT8( KPriorityHighIconFileName, "todo_high_add.png");
_LIT8( KPriorityLowIconFileName, "todo_low_add.png");
-_LIT8( KHeaderTableName, "header_table");
+_LIT8( KCollapsedHeaderTableName, "collapsed_header" );
+_LIT8( KExpandedHeaderTableName, "expanded_header" );
_LIT8( KToTableName, "to_table");
_LIT8( KCcTableName, "cc_table");
_LIT8( KBccTableName, "bcc_table");
@@ -58,7 +60,6 @@
_LIT8( KCcImageName, "cc_img");
_LIT8( KBccImageName, "bcc_img");
_LIT8( KAttachmentImageName, "attachment_img");
-_LIT8( KDetailImageName, "detail_img");
_LIT8( KFollowUpImageName, "follow_up_img");
_LIT8( KFollowUpCompleteImageName, "follow_up_complete_img");
_LIT8( KPriorityHighImageName, "todo_high_add_img");
@@ -73,10 +74,10 @@
_LIT8( KMetaHeader, "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" );
_LIT8( KDisplayImagesLeftToRight,
- "<script language=\"javascript\">var g_autoLoadImages = %d;</script><table style=\"display: none;\" id=\"displayImagesTable\" width=\"%dpx\"><tr><td align=\"left\">%S</td><td align=\"right\"><input type=\"submit\" class=\"button\" value=\"%S\" onClick=\"displayImagesButtonPressed()\"/></td></tr></table>" );
+ "<script language=\"javascript\">var g_autoLoadImages = %d;</script>\n<table style=\"display: none;\" id=\"displayImagesTable\" width=\"%dpx\"><tr><td align=\"left\">%S</td><td align=\"right\"><input type=\"submit\" class=\"button\" value=\"%S\" onClick=\"displayImagesButtonPressed()\"/></td></tr></table>" );
_LIT8( KDisplayImagesRightToLeft,
- "<script language=\"javascript\">var g_autoLoadImages = %d;</script><table style=\"display: none;\" id=\"displayImagesTable\" width=\"%dpx\"><tr><td align=\"left\"><input type=\"submit\" class=\"button\" value=\"%S\" onClick=\"displayImagesButtonPressed()\"/></td><td align=\"right\">%S</td></tr></table>" );
+ "<script language=\"javascript\">var g_autoLoadImages = %d;</script>\n<table style=\"display: none;\" id=\"displayImagesTable\" width=\"%dpx\"><tr><td align=\"left\"><input type=\"submit\" class=\"button\" value=\"%S\" onClick=\"displayImagesButtonPressed()\"/></td><td align=\"right\">%S</td></tr></table>" );
_LIT8 ( KProtocolIdentifier, "://" );
const TInt KMaxEventLength( 256 );
const TInt KFreestyleMessageHeaderHTMLRightMarginInPx( 10 );
@@ -239,15 +240,8 @@
void CFreestyleMessageHeaderHTML::ExportHTMLBodyL() const
{
HTMLBodyStartL();
- ExportInitialTableL();
- StartHeaderTableL( KHeaderTableName );
- ExportFromL();
- ExportToL();
- ExportCcL();
- ExportBccL();
- ExportSentTimeL();
- ExportSubjectL();
- EndHeaderTableL();
+ ExportCollapsedHeaderTableL();
+ ExportExpandedHeaderTableL();
ExportAttachmentsL();
ExportDisplayImagesTableL();
HTMLBodyEndL();
@@ -298,128 +292,27 @@
iWriteStream.CommitL();
}
-void CFreestyleMessageHeaderHTML::ExportInitialTableL() const
+void CFreestyleMessageHeaderHTML::ExportCollapsedHeaderTableL() const
{
- // set the width, using the visible screen width
- TBuf8<KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth> tableWidth;
- tableWidth.AppendNum( iVisibleWidth );
-
- if (iExpanded)
- {
- iWriteStream.WriteL(_L8("<table id=\"table_initial\" border=\"0\" width=\""));
- iWriteStream.WriteL( tableWidth );
- iWriteStream.WriteL( _L8("px\" style=\"display: none\">\n"));
- }
- else
- {
- iWriteStream.WriteL(_L8("<table id=\"table_initial\" border=\"0\" width=\""));
- iWriteStream.WriteL( tableWidth );
- iWriteStream.WriteL( _L8("px\">\n"));
- }
-
-
- // start first row: table with the sent info and the '+' icon
- iWriteStream.WriteL(_L8("<tr><td><table id=\"table_sent_and_plus\" border=\"0\" width=\""));
- iWriteStream.WriteL( tableWidth );
- iWriteStream.WriteL( _L8("px\">\n"));
-
- iWriteStream.WriteL(_L8("<tr>\n"));
-
- // add Sent time and date
- iWriteStream.WriteL(_L8("<td id=\"sent_initial\""));
-
- if ( !iMirrorLayout )
- {
- iWriteStream.WriteL(_L8(" align=\"left\""));
- }
- else
- {
- iWriteStream.WriteL(_L8(" align=\"right\""));
- }
- iWriteStream.WriteL(_L8(" valign=\"bottom\">"));
-
- HBufC* dateText = TFsEmailUiUtility::DateTextFromMsgLC( &iMailMessage );
- HBufC* timeText = TFsEmailUiUtility::TimeTextFromMsgLC( &iMailMessage );
+ StartHeaderTableL( KCollapsedHeaderTableName, !iExpanded );
+ ExportTimeAndExpandButtonL();
+ ExportSubjectCollapsedL();
+ EndHeaderTableL();
+ }
- TInt len = dateText->Length() + KSentLineDateAndTimeSeparatorText().Length() + timeText->Length();
- HBufC* sentTimeText = HBufC::NewLC( len );
- TPtr sentTimeTextPtr = sentTimeText->Des();
- sentTimeTextPtr.Append( *dateText );
- sentTimeTextPtr.Append( KSentLineDateAndTimeSeparatorText );
- sentTimeTextPtr.Append( *timeText );
- HBufC8* sentTimeText8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( sentTimeTextPtr );
- CleanupStack::PushL( sentTimeText8 );
- iWriteStream.WriteL( *sentTimeText8 );
- CleanupStack::PopAndDestroy( sentTimeText8 );
- CleanupStack::PopAndDestroy( sentTimeText );
- CleanupStack::PopAndDestroy( timeText );
- CleanupStack::PopAndDestroy( dateText );
-
- iWriteStream.WriteL(_L8("</td>\n"));
-
- // add "show details" image on the same line as Sent time and date
- iWriteStream.WriteL(_L8("<td width=\"1\" valign=\"top\""));
- if ( !iMirrorLayout )
- {
- iWriteStream.WriteL(_L8(" align=\"right\""));
- }
- else
- {
- iWriteStream.WriteL(_L8(" align=\"left\""));
- }
- iWriteStream.WriteL(_L8(" style=\"padding: 0px 10px 0px 0px;\"><image width=\"55\" height=\"36\" id=\"detail_img\" border=\"0\" src=\"plus.gif\" onClick=\"expandHeader(true)\" ></td>\n"));
-
-
- // finish first row
- iWriteStream.WriteL(_L8("</tr>\n"));
- iWriteStream.WriteL(_L8("</table></td></tr>\n"));
+void CFreestyleMessageHeaderHTML::ExportExpandedHeaderTableL() const
+ {
+ StartHeaderTableL( KExpandedHeaderTableName, iExpanded );
+ ExportCollapseButtonL();
+ ExportFromL();
+ ExportToL();
+ ExportCcL();
+ ExportBccL();
+ ExportSentTimeL();
+ ExportSubjectL();
+ EndHeaderTableL();
+ }
- //=============================
- // start second row which contains subject
- iWriteStream.WriteL(_L8("<tr>\n"));
- iWriteStream.WriteL(_L8("<td id=\"subject_initial\""));
- if ( !iMirrorLayout )
- {
- iWriteStream.WriteL(_L8(" align=\"left\""));
- }
- else
- {
- iWriteStream.WriteL(_L8(" align=\"right\""));
- }
- iWriteStream.WriteL(_L8("><b>"));
-
- HBufC* subject = iMailMessage.GetSubject().Alloc();
- /*
- * Writes the subject to iWriteStream and also
- * takes care of the urls and marks them as hotspots
- */
- WriteSubjectL(*subject);
-
- iWriteStream.WriteL(_L8("</b>"));
-
- // Write icons (if necessary).
- HBufC8* followUp = HTMLHeaderFollowUpIconLC( EFalse );
- HBufC8* priority = HTMLHeaderPriorityIconLC( EFalse );
-
- if ( priority )
- {
- iWriteStream.WriteL( *priority );
- CleanupStack::PopAndDestroy( priority);
- }
-
- if ( followUp )
- {
- iWriteStream.WriteL( *followUp );
- CleanupStack::PopAndDestroy( followUp );
- }
-
- iWriteStream.WriteL(_L8("</td></tr>\n")); // finish subject row
-
- // end table_initial
- iWriteStream.WriteL(_L8("</table>\n"));
-
- iWriteStream.CommitL();
- }
// -----------------------------------------------------------------------------
// CFreestyleMessageHeaderHTML::WriteSubjectL
// Writes the subject to iWriteStream and also
@@ -706,6 +599,105 @@
iWriteStream.CommitL();
}
+void CFreestyleMessageHeaderHTML::ExportCollapseButtonL() const
+ {
+ TBuf8<KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth> tableWidth;
+ tableWidth.AppendNum( iVisibleWidth );
+
+ // Add "Collapse" button as its own table with its own width
+ iWriteStream.WriteL( _L8("<tr><td>\n") );
+ iWriteStream.WriteL( _L8("<table id =\"table_minus_icon\" border=\"0\" width=\"") );
+ iWriteStream.WriteL( tableWidth );
+ iWriteStream.WriteL( _L8("px\">\n") );
+ iWriteStream.WriteL( _L8("<tr>\n") );
+
+ iWriteStream.WriteL( _L8("<td valign=\"top\"") );
+ if ( !iMirrorLayout )
+ {
+ iWriteStream.WriteL( _L8(" align=\"right\"") );
+ iWriteStream.WriteL( _L8(" style=\"padding-right: 10px;\">\n") );
+ }
+ else
+ {
+ iWriteStream.WriteL( _L8(" align=\"left\"") );
+ iWriteStream.WriteL( _L8(" style=\"padding-left: 10px;\">\n") );
+ }
+ iWriteStream.WriteL( _L8("<input type=\"submit\" id=\"collapse\" value=\"\" class=\"collapse\"") );
+ iWriteStream.WriteL( _L8(" onClick=\"collapseHeader(true)\"/>") );
+ iWriteStream.WriteL( _L8("</td>\n") );
+
+ iWriteStream.WriteL( _L8("</tr>\n"));
+ iWriteStream.WriteL( _L8("</table></td></tr>\n"));
+ iWriteStream.CommitL();
+ }
+
+void CFreestyleMessageHeaderHTML::ExportTimeAndExpandButtonL() const
+ {
+ // set the width, using the visible screen width
+ TBuf8<KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth> tableWidth;
+ tableWidth.AppendNum( iVisibleWidth );
+
+ // start first row: table with the sent info and the '+' icon
+ iWriteStream.WriteL(_L8("<tr><td><table id=\"table_sent_and_plus\" border=\"0\" width=\""));
+ iWriteStream.WriteL( tableWidth );
+ iWriteStream.WriteL( _L8("px\">\n"));
+
+ iWriteStream.WriteL(_L8("<tr>\n"));
+
+ // add Sent time and date
+ iWriteStream.WriteL(_L8("<td id=\"sent_initial\""));
+
+ if ( !iMirrorLayout )
+ {
+ iWriteStream.WriteL(_L8(" align=\"left\""));
+ }
+ else
+ {
+ iWriteStream.WriteL(_L8(" align=\"right\""));
+ }
+ iWriteStream.WriteL(_L8(" valign=\"bottom\">"));
+
+ HBufC* dateText = TFsEmailUiUtility::DateTextFromMsgLC( &iMailMessage );
+ HBufC* timeText = TFsEmailUiUtility::TimeTextFromMsgLC( &iMailMessage );
+
+ TInt len = dateText->Length() + KSentLineDateAndTimeSeparatorText().Length() + timeText->Length();
+ HBufC* sentTimeText = HBufC::NewLC( len );
+ TPtr sentTimeTextPtr = sentTimeText->Des();
+ sentTimeTextPtr.Append( *dateText );
+ sentTimeTextPtr.Append( KSentLineDateAndTimeSeparatorText );
+ sentTimeTextPtr.Append( *timeText );
+ HBufC8* sentTimeText8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( sentTimeTextPtr );
+ CleanupStack::PushL( sentTimeText8 );
+ iWriteStream.WriteL( *sentTimeText8 );
+ CleanupStack::PopAndDestroy( sentTimeText8 );
+ CleanupStack::PopAndDestroy( sentTimeText );
+ CleanupStack::PopAndDestroy( timeText );
+ CleanupStack::PopAndDestroy( dateText );
+
+ iWriteStream.WriteL(_L8("</td>\n"));
+
+ // Add "expand" button on the same line as Sent time and date
+ iWriteStream.WriteL(_L8("<td valign=\"top\""));
+ if ( !iMirrorLayout )
+ {
+ iWriteStream.WriteL(_L8(" align=\"right\""));
+ iWriteStream.WriteL(_L8(" style=\"padding-right: 10px;\">\n"));
+ }
+ else
+ {
+ iWriteStream.WriteL(_L8(" align=\"left\""));
+ iWriteStream.WriteL(_L8(" style=\"padding-left: 10px;\">\n"));
+ }
+ iWriteStream.WriteL(_L8("<input type=\"submit\" id=\"expand\" value=\"\" class=\"expand\""));
+ iWriteStream.WriteL(_L8(" onClick=\"expandHeader(true)\"/>"));
+ iWriteStream.WriteL(_L8("</td>\n"));
+
+ // finish first row
+ iWriteStream.WriteL(_L8("</tr>\n"));
+ iWriteStream.WriteL(_L8("</table></td></tr>\n"));
+ iWriteStream.CommitL();
+ }
+
void CFreestyleMessageHeaderHTML::ExportSubjectL() const
{
iWriteStream.WriteL( _L8("<tr id=\"") );
@@ -757,6 +749,49 @@
iWriteStream.CommitL();
}
+void CFreestyleMessageHeaderHTML::ExportSubjectCollapsedL() const
+ {
+ iWriteStream.WriteL(_L8("<tr>\n"));
+ iWriteStream.WriteL(_L8("<td id=\"subject_initial\""));
+ if ( !iMirrorLayout )
+ {
+ iWriteStream.WriteL(_L8(" align=\"left\""));
+ }
+ else
+ {
+ iWriteStream.WriteL(_L8(" align=\"right\""));
+ }
+ iWriteStream.WriteL(_L8("><b>"));
+
+ HBufC* subject = iMailMessage.GetSubject().Alloc();
+ /*
+ * Writes the subject to iWriteStream and also
+ * takes care of the urls and marks them as hotspots
+ */
+ WriteSubjectL(*subject);
+
+ iWriteStream.WriteL(_L8("</b>"));
+
+ // Write icons (if necessary).
+ HBufC8* followUp = HTMLHeaderFollowUpIconLC( EFalse );
+ HBufC8* priority = HTMLHeaderPriorityIconLC( EFalse );
+
+ if ( priority )
+ {
+ iWriteStream.WriteL( *priority );
+ CleanupStack::PopAndDestroy( priority);
+ }
+
+ if ( followUp )
+ {
+ iWriteStream.WriteL( *followUp );
+ CleanupStack::PopAndDestroy( followUp );
+ }
+
+ iWriteStream.WriteL(_L8("</td></tr>\n")); // finish subject row
+ iWriteStream.CommitL();
+ }
+
void CFreestyleMessageHeaderHTML::ExportFromL() const
{
RPointerArray<CFSMailAddress> froms;
@@ -1053,42 +1088,13 @@
iWriteStream.CommitL();
}
-void CFreestyleMessageHeaderHTML::StartHeaderTableL( const TDesC8& aTableId ) const
+void CFreestyleMessageHeaderHTML::StartHeaderTableL( const TDesC8& aTableId,
+ TBool /*aVisible*/ ) const
{
iWriteStream.WriteL( _L8("<table id=\"") );
- iWriteStream.WriteL( aTableId );
- if (iExpanded)
- {
- iWriteStream.WriteL( _L8("\" border=\"0\" width=\"100%\">\n") );
- }
- else
- {
- iWriteStream.WriteL( _L8("\" border=\"0\" width=\"100%\" style=\"display: none\">\n") );
- }
-
- TBuf8<KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth> tableWidth;
- tableWidth.AppendNum( iVisibleWidth );
-
- // Add "hide details" image as its own table with its own width
- iWriteStream.WriteL( _L8("<tr><td>\n"));
- iWriteStream.WriteL(_L8("<table id =\"table_minus_icon\" border=\"0\" width=\""));
- iWriteStream.WriteL( tableWidth );
- iWriteStream.WriteL( _L8("px\">\n"));
- iWriteStream.WriteL( _L8("<tr>\n"));
-
- iWriteStream.WriteL( _L8("<td valign=\"top\""));
- if ( !iMirrorLayout )
- {
- iWriteStream.WriteL(_L8(" align=\"right\""));
- }
- else
- {
- iWriteStream.WriteL(_L8(" align=\"left\""));
- }
- iWriteStream.WriteL( _L8(" style=\"padding: 0px 10px 0px 0px;\"><image width=\"55\" height=\"36\" id=\"hideDetails_img\" border=\"0\" src=\"minus.gif\" onClick=\"collapseHeader(true)\"></td>\n"));
-
- iWriteStream.WriteL( _L8("</tr>\n"));
- iWriteStream.WriteL( _L8("</table></td></tr>\n"));
+ iWriteStream.WriteL( aTableId );
+ iWriteStream.WriteL( _L8("\" border=\"0\" width=\"100%\"") );
+ iWriteStream.WriteL( _L8(">\n") );
iWriteStream.CommitL();
}
@@ -1111,15 +1117,6 @@
iWriteStream.CommitL();
}
-void CFreestyleMessageHeaderHTML::AddShowDetailL() const
- {
- HBufC8* event = ClickImageEventL( KDetailImageName );
- CleanupStack::PushL( event );
- AddImageL( KDetailImageName, KShowDetailIconFileName, *event );
- CleanupStack::PopAndDestroy( event );
- iWriteStream.CommitL();
- }
-
HBufC8* CFreestyleMessageHeaderHTML::ClickImageEventL( const TDesC8& aImageName ) const
{
TBuf8<KMaxEventLength> event;
@@ -1147,14 +1144,6 @@
event.Append( KBccImageName );
event.Append( _L8("')\"") );
}
- else if ( aImageName.Compare( KDetailImageName ) == 0 )
- {
- event.Append( _L8("onClick=\"toggleHeader('") );
- event.Append( KHeaderTableName );
- event.Append( _L8("', '") );
- event.Append( KDetailImageName );
- event.Append( _L8("')\"") );
- }
else if ( aImageName.Compare( KAttachmentImageName ) == 0 )
{
event.Append( _L8("onClick=\"toggleField('") );
@@ -1228,8 +1217,15 @@
// Note: since the text in the body is too small at "normal" level,
// we have the text size level in the browser set to "Larger" which is 20% larger than the specified size
// the "larger" size affects all text which includes the header.
- iWriteStream.WriteL( _L8("td { font-family:arial,sans-serif ; font-size:75% }\n"));
+ iWriteStream.WriteL( _L8("td { font-family:arial,sans-serif ; font-size:75% }\n") );
iWriteStream.WriteL( _L8(".button { background: url('btn_middle.png') repeat-x top left; border: 1px solid #546284; height: 32px; font-size:19px; font-weight: bold; color: #344a6c; font-family:arial,sans-serif; }\n") );
+ iWriteStream.WriteL( _L8("input { color: black; position: relative; border: 0; cursor: pointer; overflow: visible; }\n") );
+ iWriteStream.WriteL( _L8("input.expand { width: 55px; height: 36px; background: transparent url('"));
+ iWriteStream.WriteL( KExpandHeaderIconFileName );
+ iWriteStream.WriteL( _L8("') no-repeat top left; }\n") );
+ iWriteStream.WriteL( _L8("input.collapse { width: 55px; height: 36px; background: transparent url('"));
+ iWriteStream.WriteL( KCollapseHeaderIconFileName );
+ iWriteStream.WriteL( _L8("') no-repeat top left; }\n") );
iWriteStream.WriteL( _L8("</style>\n") );
iWriteStream.CommitL();
}
@@ -1248,4 +1244,3 @@
}
-
--- a/emailuis/emailui/src/OverlayControl.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/OverlayControl.cpp Tue May 11 15:57:15 2010 +0300
@@ -73,7 +73,7 @@
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
{
// Give feedback to user (vibration)
- iTouchFeedBack->InstantFeedback( this, ETouchFeedbackBasic );
+ iTouchFeedBack->InstantFeedback( this, ETouchFeedbackBasicButton );
SetPointerCapture( ETrue );
}
CCoeControl::HandlePointerEventL( aPointerEvent );
--- a/emailuis/emailui/src/ncsaddressinputfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncsaddressinputfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -290,7 +290,7 @@
FUNC_LOG;
// keep the button in view as long as possible
- if( iButton )
+ if( iButton && iParentControl->IsVisible() )
{
const TRect rect( Rect() );
const TRect buttonRect( iButton->Rect() );
@@ -463,7 +463,11 @@
}
else
{
- TRAP_IGNORE( iTextEditor->HandleTextChangedL() );
+ if ( iTextEditor->SelectionLength()== 0 )
+ {
+ TRAP_IGNORE( iTextEditor->HandleTextChangedL() );
+ }
+
iTextEditor->SetFocus( EFalse );
TRAP_IGNORE( iAddressPopupList->ClosePopupContactListL() );
}
@@ -862,9 +866,10 @@
{
iPhysics = aPhysics;
iTextEditor->EnableKineticScrollingL( aPhysics );
+ iTextEditor->TextLayout()->RestrictScrollToTopsOfLines( ETrue );
}
-void CNcsAddressInputField::SetCursorVisible( TBool aCursorVisible )
+void CNcsAddressInputField::SetPhysicsEmulationOngoing( TBool aPhysOngoing )
{
- iTextEditor->SetCursorVisible( aCursorVisible );
+ iTextEditor->SetPhysicsEmulationOngoing( aPhysOngoing );
}
--- a/emailuis/emailui/src/ncscomposeview.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncscomposeview.cpp Tue May 11 15:57:15 2010 +0300
@@ -1629,7 +1629,8 @@
TFsEmailUiUtility::CreatePlainTextPartL(
*iNewMessage, iNewMessageTextPart );
InitFieldsL();
- IncludeMessageTextL();
+ TBool spaceInBegin = ETrue;
+ IncludeMessageTextL(spaceInBegin);
AttachmentsListControl()->Model()->Clear();
GetAttachmentsFromMailL();
SetAttachmentLabelContentL();
--- a/emailuis/emailui/src/ncscomposeviewcontainer.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncscomposeviewcontainer.cpp Tue May 11 15:57:15 2010 +0300
@@ -54,6 +54,8 @@
#include "FreestyleEmailUiCLSItem.h"
+const TInt KHeaderVisibilityThreshold = -100;
+
// ========================= MEMBER FUNCTIONS ==================================
// ---------------------------------------------------------------------------
@@ -362,8 +364,8 @@
{
// If user started dragging, cancel hotspot actions
iIsDragging = ETrue;
- iMessageField->SetCursorVisible( EFalse );
- iReadOnlyQuoteField->SetCursorVisible( EFalse );
+ iMessageField->SetPhysicsEmulationOngoing( ETrue );
+ iReadOnlyQuoteField->SetPhysicsEmulationOngoing( ETrue );
iHeader->SetPhysicsEmulationOngoing( ETrue );
}
}
@@ -789,11 +791,11 @@
}
// update some layout variables
- TRect headerRect = iHeader->Rect();
+ iHeaderHeight = iHeader->Rect().Height();
TRect bodyRect = iMessageField->Rect();
TRect quoteRect = iReadOnlyQuoteField->Rect();
- iTotalComposerHeight = headerRect.Height() + iSeparatorHeight * 2 +
+ iTotalComposerHeight = iHeaderHeight + iSeparatorHeight * 2 +
bodyRect.Height() + quoteRect.Height();
iVisibleAreaHeight = Rect().Height();
@@ -998,7 +1000,8 @@
TEdwinEvent aEventType )
{
FUNC_LOG;
- if ( aEdwin == iMessageField || aEdwin == iReadOnlyQuoteField )
+ if (( aEdwin == iMessageField || aEdwin == iReadOnlyQuoteField ) &&
+ ( !iPhysics || iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionNone ))
{
if ( aEventType == MEikEdwinObserver::EEventTextUpdate ||
aEventType == MEikEdwinObserver::EEventNavigation )
@@ -1916,7 +1919,19 @@
{
headerPos.iY += moveY;
iHeader->SetPosition( headerPos );
-
+
+ // set header invisible if it is not in visible area
+ // this is done to prevent drawing of header when it is not necessary
+ if ( headerPos.iY + iHeaderHeight <= KHeaderVisibilityThreshold && iHeader->IsVisible() )
+ {
+ iHeader->MakeVisible( EFalse );
+ }
+ // set header visible if it is in visible area
+ else if ( headerPos.iY + iHeaderHeight > KHeaderVisibilityThreshold && !iHeader->IsVisible() )
+ {
+ iHeader->MakeVisible( ETrue );
+ }
+
TPoint msgPos( iMessageField->Position() );
msgPos.iY += moveY;
iMessageField->SetPosition( msgPos );
@@ -1931,7 +1946,7 @@
iSeparatorLineYPos += moveY;
UpdateScrollBar();
- DrawNow();
+ DrawDeferred();
}
}
else
@@ -1950,8 +1965,15 @@
{
FUNC_LOG;
TInt scrollOffset = aNewPosition.iY - iVisibleAreaHeight / 2;
+
+ // when the composer view is overlapped by other view for instance task switcher or screensaver
+ // physics sends a faulty event to move the composer view down.
+ // This action is ignored here.
+ if (aNewPosition.iY != 0)
+ {
Scroll( scrollOffset, aDrawNow );
}
+ }
// -----------------------------------------------------------------------------
// CNcsComposeViewContainer::PhysicEmulationEnded
@@ -1962,8 +1984,8 @@
{
FUNC_LOG;
iIsFlicking = EFalse;
- iMessageField->SetCursorVisible( ETrue );
- iReadOnlyQuoteField->SetCursorVisible( ETrue );
+ iMessageField->SetPhysicsEmulationOngoing( EFalse );
+ iReadOnlyQuoteField->SetPhysicsEmulationOngoing( EFalse );
iHeader->SetPhysicsEmulationOngoing( EFalse );
}
--- a/emailuis/emailui/src/ncseditor.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncseditor.cpp Tue May 11 15:57:15 2010 +0300
@@ -650,3 +650,15 @@
caps.MergeWith(caps2);
return caps;
}
+
+
+void CNcsEditor::SetPhysicsEmulationOngoing( TBool aPhysOngoing )
+ {
+ iPhysOngoing = aPhysOngoing;
+ this->SetCursorVisible( !aPhysOngoing );
+ }
+
+TBool CNcsEditor::IsPhysicsEmulationOngoing() const
+ {
+ return iPhysOngoing;
+ }
--- a/emailuis/emailui/src/ncseditorcustomdraw.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncseditorcustomdraw.cpp Tue May 11 15:57:15 2010 +0300
@@ -82,13 +82,15 @@
TRect& aDrawn ) const
{
FUNC_LOG;
+ TRect drawRect( aParam.iDrawRect );
+
if ( iPrevBrX == 0 )
{
- const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = aParam.iDrawRect.iBr.iX;
+ const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = drawRect.iBr.iX;
}
// draw background if text selection is ongoing
- if ( iEditor->SelectionLength() )
+ if ( !iEditor->IsPhysicsEmulationOngoing() )
{
iCustomDrawer->DrawBackground( aParam, aBackground, aDrawn );
}
@@ -96,29 +98,34 @@
{
aDrawn = aParam.iDrawRect;
}
-
- if ( aParam.iDrawRect.iTl.iX < iPrevBrX )
+
+ if ( drawRect.iTl.iY == 0 )
+ {
+ drawRect.iTl.iY = drawRect.Height() - iLineHeigth;
+ }
+
+ if ( drawRect.iTl.iX < iPrevBrX )
{
aParam.iGc.SetPenColor( iLineColor );
TInt margin( 0 );
- if ( aParam.iDrawRect.Height() < iLineHeigth ||
- aParam.iDrawRect.Height() == iLineOffset )
+ if ( drawRect.Height() < iLineHeigth ||
+ drawRect.Height() == iLineOffset )
{
margin = 1;
}
- TRect currentRect( aParam.iDrawRect.iTl , TPoint( aParam.iDrawRect.iBr.iX, aParam.iDrawRect.iTl.iY + iLineOffset - margin ));
+ TRect currentRect( drawRect.iTl , TPoint( drawRect.iBr.iX, drawRect.iTl.iY + iLineOffset - margin ));
- while ( currentRect.iBr.iY <= aParam.iDrawRect.iBr.iY )
+ while ( currentRect.iBr.iY <= drawRect.iBr.iY )
{
- if ( currentRect.iTl.iY >= aParam.iDrawRect.iTl.iY )
+ if ( currentRect.iTl.iY >= drawRect.iTl.iY )
{
aParam.iGc.DrawLine( TPoint( currentRect.iTl.iX, currentRect.iBr.iY), currentRect.iBr );
}
currentRect.Move( 0, iLineHeigth );
}
- const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = aParam.iDrawRect.iBr.iX;
+ const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = drawRect.iBr.iX;
}
}
--- a/emailuis/emailui/src/ncsheadercontainer.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncsheadercontainer.cpp Tue May 11 15:57:15 2010 +0300
@@ -1178,7 +1178,7 @@
if( !iAacListBox->IsVisible() )
{
iAacListBox->SetPopupMaxRect( CalculatePopupRect() );
- iAacListBox->InitAndSearchL( aMatchString );
+ iAacListBox->InitAndSearchL( aMatchString, 1 );
iAacListBox->ActivateL();
}
else
@@ -2054,8 +2054,8 @@
//
void CNcsHeaderContainer::SetPhysicsEmulationOngoing( TBool aPhysOngoing )
{
- iToField->SetCursorVisible( !aPhysOngoing );
- iCcField->SetCursorVisible( !aPhysOngoing );
- iBccField->SetCursorVisible( !aPhysOngoing );
- iSubjectField->SetCursorVisible( !aPhysOngoing );
+ iToField->SetPhysicsEmulationOngoing( aPhysOngoing );
+ iCcField->SetPhysicsEmulationOngoing( aPhysOngoing );
+ iBccField->SetPhysicsEmulationOngoing( aPhysOngoing );
+ iSubjectField->SetPhysicsEmulationOngoing( aPhysOngoing );
}
--- a/emailuis/emailui/src/ncspopuplistbox.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncspopuplistbox.cpp Tue May 11 15:57:15 2010 +0300
@@ -23,7 +23,6 @@
#include <FreestyleEmailUi.rsg> // R_FSE_EDITOR_ADDRESS_LIST_REMOTE_LOOKUP_SEARCH
#include <StringLoader.h> // StringLoader
#include <CPbkContactEngine.h>
-#include <aknnotewrappers.h> //For LanguageNotSupported errorNote
#include <aknsdrawutils.h>
#include <aknsutils.h>
#include <aknlayoutscalable_apps.cdl.h>
@@ -111,10 +110,10 @@
// -----------------------------------------------------------------------------
// CNcsPopupListBox::InitAndSearchL
// -----------------------------------------------------------------------------
-void CNcsPopupListBox::InitAndSearchL( const TDesC& aText )
+void CNcsPopupListBox::InitAndSearchL( const TDesC& aText, TInt aMode )
{
FUNC_LOG;
- SetSearchTextL( aText );
+ SetSearchTextL( aText, aMode );
RPointerArray<CFSEmailUiClsItem> emptyArray;
CleanupClosePushL( emptyArray );
OperationCompleteL( ESearchContacts, emptyArray );
@@ -246,7 +245,7 @@
TListBoxEvent aEventType )
{
if ( aEventType == EEventItemClicked ||
- aEventType == EEventItemSingleClicked )
+ aEventType == EEventItemSingleClicked )
{
iHeaderContainer.DoPopupSelectL();
}
@@ -302,7 +301,7 @@
// CNcsPopupListBox::SetSearchTextL
// -----------------------------------------------------------------------------
//
-void CNcsPopupListBox::SetSearchTextL( const TDesC& aText )
+void CNcsPopupListBox::SetSearchTextL( const TDesC& aText, TInt aMode )
{
FUNC_LOG;
delete iCurrentSearchText;
@@ -312,7 +311,7 @@
{
if ( iContactHandler )
{
- iContactHandler->SearchMatchesL( aText, this, &iMailBox );
+ iContactHandler->SearchMatchesL( aText, this, &iMailBox, aMode );
}
}
}
@@ -692,13 +691,16 @@
CNcsPopupListBox& tmpListBox = const_cast<CNcsPopupListBox&>( iListBox );
const TInt scrollbarBreadth = tmpListBox.ScrollBarFrame()->
ScrollBarBreadth( CEikScrollBar::EVertical );
- if ( AknLayoutUtils::LayoutMirrored() )
+ if ( scrollbarBreadth > 0 )
{
- itemRect.iTl.iX = iListBox.Rect().iTl.iX + scrollbarBreadth;
- }
- else
- {
- itemRect.iBr.iX = iListBox.Rect().iBr.iX - scrollbarBreadth;
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ itemRect.iTl.iX = iListBox.Rect().iTl.iX + scrollbarBreadth;
+ }
+ else
+ {
+ itemRect.iBr.iX = iListBox.Rect().iBr.iX - scrollbarBreadth;
+ }
}
}
@@ -769,12 +771,14 @@
aItemIndex--;
}
- // change color to gray if match doesn't have email address.
- if( clsItemArray[aItemIndex]->EmailAddress().Compare( KNullDesC ) == 0 )
- {
- TRgb dimmedColor = iListBox.LayoutHandler().PcsPopupDimmedFontColor();
- iGc->SetPenColor( dimmedColor );
- }
+ // Change text transparency if match doesn't have email address.
+ if ( clsItemArray[aItemIndex]->EmailAddress().Compare( KNullDesC ) == 0 )
+ {
+ const TInt KTransparency =
+ iListBox.LayoutHandler().PcsPopupDimmedFontTransparency();
+ textColor.SetAlpha( KTransparency );
+ iGc->SetPenColor( textColor );
+ }
// For now, we support underlining the matching part only if the
// text is written completely with left-to-right script
--- a/emailuis/emailui/src/ncssubjectfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncssubjectfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -600,9 +600,10 @@
void CNcsSubjectField::EnableKineticScrollingL(CAknPhysics* aPhysics)
{
iTextEditor->EnableKineticScrollingL(aPhysics);
+ iTextEditor->TextLayout()->RestrictScrollToTopsOfLines( ETrue );
}
-void CNcsSubjectField::SetCursorVisible( TBool aCursorVisible )
+void CNcsSubjectField::SetPhysicsEmulationOngoing( TBool aPhysOngoing )
{
- iTextEditor->SetCursorVisible( aCursorVisible );
+ iTextEditor->SetPhysicsEmulationOngoing( aPhysOngoing );
}
--- a/emailuis/uicomponents/src/fstreevisualizerbase.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/uicomponents/src/fstreevisualizerbase.cpp Tue May 11 15:57:15 2010 +0300
@@ -2535,7 +2535,11 @@
void CFsTreeVisualizerBase::SetItemsAlwaysExtendedL(TBool aAlwaysExtended)
{
FUNC_LOG;
- if (iFlags.IsSet(EItemsAlwaysExtended) != aAlwaysExtended )
+ // Do not change this to: IsItemsAlwaysExtended() != aAlwaysExtended, because
+ // it will not work. TBool is defined as TInt and thus this comparison
+ // comes out as TInt != TInt, which always evaluates true in this case.
+ if ( ( IsItemsAlwaysExtended() && !aAlwaysExtended ) ||
+ ( !IsItemsAlwaysExtended() && aAlwaysExtended ) )
{
iFlags.Assign(EItemsAlwaysExtended, aAlwaysExtended);
TFsTreeIterator treeIter(
--- a/ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h Tue May 11 15:57:15 2010 +0300
@@ -42,6 +42,7 @@
class CIpsPlgSmtpService;
class CIpsPlgSyncStateHandler;
class CIpsPlgEventHandler;
+class CIpsPlgOperationWait;
/**
* FreestyleIpsServices plugin class
@@ -611,8 +612,15 @@
const TFSMailMsgId& aMailBoxId,
const TFSMailMsgId& aOriginalMessageId,
const TDesC& aHeaderDescriptor );
-
-private:
+
+ /**
+ * Resolves the possible signature text to be added to message body.
+ *
+ * @return Pointer to the descriptor containing the signature text, or
+ * NULL if signature adding is not set or signature text is
+ * of zero length. Ownership to caller.
+ */
+ HBufC* ResolveSignatureTextL( const TFSMailMsgId& aMailBoxId );
/**
* Maps symbian msv api's folder type to fs folder type
@@ -712,6 +720,10 @@
// <cmail> delete draft synchronously
CActiveSchedulerWait iWait;
// </cmail>
+
+ CIpsPlgOperationWait* iWaitDeleteMessage;
+ CMsvEntry* icEntry;
+ CMsvOperation* iMsvOpDeleteMessage;
};
#endif /* IPSPLGSOSBASEPLUGIN_H */
--- a/ipsservices/ipssosplugin/src/ipsplgeventhandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgeventhandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -1196,12 +1196,7 @@
// ---------------------------------------------------------------------------
TUid CIpsPlgEventHandler::MtmId() const
{
- TUid ret = KSenduiMtmImap4Uid;
- if ( iBasePlugin.MtmId().iUid == KIpsPlgPop3PluginUidValue )
- {
- ret = KSenduiMtmPop3Uid;
- }
- return ret;
+ return iBasePlugin.MtmId();
}
//</cmail>
// ----------------------------------------------------------------------------
@@ -1329,6 +1324,7 @@
}
RPointerArray<MFSMailEventObserver> observers;
+ CleanupClosePushL( observers ); // not owning classes
MailboxObserversL( aAccount, observers );
if ( find != KErrNotFound )
@@ -1342,7 +1338,7 @@
obs->SetKeyAndActivateL( aSettingKey, observers );
iIPSSettingsObservers.AppendL( obs );
}
- observers.Close();
+ CleanupStack::PopAndDestroy( &observers );
}
// ----------------------------------------------------------------------------
--- a/ipsservices/ipssosplugin/src/ipsplgimap4plugin.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgimap4plugin.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,6 +19,7 @@
#include "emailtrace.h"
#include "ipsplgheaders.h"
+#include <baseplugincommonutils.h> // CleanupResetAndDestroyPushL
const TInt KConnectOpPriority = CActive::EPriorityStandard;
@@ -663,7 +664,7 @@
if( folder )
{
CleanupStack::PushL( folder );
- aFolderList.Append( folder );
+ aFolderList.AppendL( folder );
CleanupStack::Pop( folder );
}
@@ -673,7 +674,7 @@
if( folder )
{
CleanupStack::PushL( folder );
- aFolderList.Append( folder );
+ aFolderList.AppendL( folder );
CleanupStack::Pop( folder );
}
@@ -683,7 +684,7 @@
if( folder )
{
CleanupStack::PushL( folder );
- aFolderList.Append( folder );
+ aFolderList.AppendL( folder );
CleanupStack::Pop( folder );
}
--- a/ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp Tue May 11 15:57:15 2010 +0300
@@ -30,6 +30,7 @@
_LIT8( KRequest, "REQUEST" );
_LIT8( KResponse, "RESPONSE" );
_LIT8( KCancel, "CANCEL" );
+_LIT( KLineFeed, "\r\n");
#ifdef __WINS__
_LIT( KEmulatorIMEI, "123456789012345" );
@@ -64,6 +65,22 @@
CIpsPlgSosBasePlugin::~CIpsPlgSosBasePlugin()
{
FUNC_LOG;
+ if ( iMsvOpDeleteMessage )
+ {
+ iMsvOpDeleteMessage->Cancel();
+ }
+
+ if ( iWaitDeleteMessage )
+ {
+ iWaitDeleteMessage->Cancel();
+ }
+
+ delete iMsvOpDeleteMessage;
+ iMsvOpDeleteMessage = NULL;
+ delete iWaitDeleteMessage;
+ iWaitDeleteMessage = NULL;
+ delete icEntry;
+ icEntry = NULL;
if ( iWait.IsStarted() )
{
iWait.AsyncStop();
@@ -1743,7 +1760,7 @@
void CIpsPlgSosBasePlugin::DeleteMessagesByUidL(
const TFSMailMsgId& /*aMailBoxId*/,
const TFSMailMsgId& /*aFolderId*/,
- const RArray<TFSMailMsgId>& aMessages )
+ const RArray<TFSMailMsgId>& aMessages )
{
FUNC_LOG;
CMsvEntrySelection* sel=new(ELeave) CMsvEntrySelection;
@@ -1754,49 +1771,93 @@
TMsvId service;
TMsvEntry parentEntry;
-
- for(TInt i=0; i<count; i++)
+
+ // simulation of canceling deletion operation
+ if ( !count )
{
- iSession->GetEntry( aMessages[i].Id(), service, tEntry );
-
- //make sure that only messages get deleted.
- if( tEntry.iType == KUidMsvMessageEntry )
+ if ( iMsvOpDeleteMessage )
{
- iSession->GetEntry( tEntry.Parent( ), service, parentEntry );
-
- CMsvEntry *cEntry = CMsvEntry::NewL(
- *iSession, tEntry.Id(), TMsvSelectionOrdering() );
- CleanupStack::PushL( cEntry );
- CIpsPlgOperationWait* wait = CIpsPlgOperationWait::NewLC( );
- // Sets bit 32 of iMtmData1, used when msg deleted in Offline
- // and status hasn't updated to server (client entry still exists)
- tEntry.SetLocallyDeleted( ETrue );
- CMsvOperation* msvOp = cEntry->ChangeL( tEntry, wait->iStatus );
- CleanupStack::PushL(msvOp);
- wait->Start();
- sel->AppendL( tEntry.Id() );
- CleanupStack::PopAndDestroy( 3, cEntry );
+ iMsvOpDeleteMessage->Cancel();
+ }
+
+ if ( iWaitDeleteMessage )
+ {
+ iWaitDeleteMessage->Cancel();
}
- }
-
- CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewL( *this );
- CleanupStack::PushL( watcher );
- CMsvOperation* op = CIpsPlgDeleteRemote::NewL( *iSession,
- watcher->iStatus, *sel );
- watcher->SetOperation( op );
-
- // make draft deletion synchronous so that empty drafts are not left after application close
- if ( parentEntry.Id() == KMsvDraftEntryIdValue && count == 1 )
- {
- iWait.Start();
- CleanupStack::PopAndDestroy( watcher );
+
+ delete iMsvOpDeleteMessage;
+ iMsvOpDeleteMessage = NULL;
+ delete iWaitDeleteMessage;
+ iWaitDeleteMessage = NULL;
+ delete icEntry;
+ icEntry = NULL;
}
else
{
- iOperations.AppendL( watcher );
- CleanupStack::Pop( watcher );
+ for( TInt i = 0; i < count; i++ )
+ {
+ iSession->GetEntry( aMessages[i].Id(), service, tEntry );
+
+ //make sure that only messages get deleted.
+ if( tEntry.iType == KUidMsvMessageEntry )
+ {
+ if(iMsvOpDeleteMessage)
+ {
+ iMsvOpDeleteMessage->Cancel();
+ delete iMsvOpDeleteMessage;
+ iMsvOpDeleteMessage = NULL;
+ }
+
+ if ( iWaitDeleteMessage )
+ {
+ iWaitDeleteMessage->Cancel();
+ delete iWaitDeleteMessage;
+ iWaitDeleteMessage = NULL;
+ }
+
+ delete icEntry;
+ icEntry = NULL;
+
+ iSession->GetEntry( tEntry.Parent( ), service, parentEntry );
+
+ icEntry = CMsvEntry::NewL(
+ *iSession, tEntry.Id(), TMsvSelectionOrdering() );
+
+
+ // priority slightly increased not to pause the function longer than needed
+ iWaitDeleteMessage = CIpsPlgOperationWait::NewL( CActive::EPriorityStandard+1 );
+ // Sets bit 32 of iMtmData1, used when msg deleted in Offline
+ // and status hasn't updated to server (client entry still exists)
+ tEntry.SetLocallyDeleted( ETrue );
+
+ iMsvOpDeleteMessage = icEntry->ChangeL( tEntry,
+ iWaitDeleteMessage->iStatus );
+
+ iWaitDeleteMessage->Start();
+
+ sel->AppendL( tEntry.Id() );
+ }
+ }
+
+ CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewLC( *this );
+
+ CMsvOperation* op = CIpsPlgDeleteRemote::NewL( *iSession,
+ watcher->iStatus, *sel );
+ watcher->SetOperation( op );
+
+ // make draft deletion synchronous so that empty drafts are not left after application close
+ if ( parentEntry.Id() == KMsvDraftEntryIdValue && count == 1 )
+ {
+ iWait.Start();
+ CleanupStack::PopAndDestroy( watcher );
+ }
+ else
+ {
+ iOperations.AppendL( watcher );
+ CleanupStack::Pop( watcher );
+ }
}
-
+
CleanupStack::PopAndDestroy( sel );
}
@@ -2177,14 +2238,37 @@
textBodyPart->FetchedContentSize() );
TPtr bPtr( body->Des() );
origMsgTextBodyPart->GetContentToBufferL( bPtr, 0 );
- HBufC* content = HBufC::NewLC(
- hPtr.Length() + bPtr.Length() );
- TPtr cPtr( content->Des() );
+ TInt contentLength = hPtr.Length() + bPtr.Length() +
+ KLineFeed().Length();
+ HBufC* signatureText = NULL;
+ // if signature resolving leaves, ignore it, i.e.,
+ // continue without signature adding
+ TRAP_IGNORE( signatureText =
+ ResolveSignatureTextL( aMailBoxId ) );
+ if ( signatureText )
+ {
+ CleanupStack::PushL( signatureText );
+ contentLength += signatureText->Length() +
+ KLineFeed().Length();
+ }
+ HBufC* content = HBufC::NewLC( contentLength );
+ TPtr cPtr( content->Des() );
+ if ( signatureText )
+ {
+ cPtr.Append( *signatureText );
+ // extra empty line between signature and original txt
+ cPtr.Append( KLineFeed );
+ }
+ cPtr.Append( KLineFeed );
cPtr.Append( hPtr );
cPtr.Append( bPtr );
textBodyPart->SetContent( cPtr );
textBodyPart->SaveL();
CleanupStack::PopAndDestroy( content );
+ if ( signatureText )
+ {
+ CleanupStack::PopAndDestroy( signatureText );
+ }
CleanupStack::PopAndDestroy( body );
CleanupStack::PopAndDestroy( origMsgTextBodyPart );
}
@@ -2196,6 +2280,25 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
+HBufC* CIpsPlgSosBasePlugin::ResolveSignatureTextL(
+ const TFSMailMsgId& aMailBoxId )
+ {
+ FUNC_LOG;
+ HBufC* signatureText = NULL;
+
+ if ( iSettingsApi && iSession )
+ {
+ TMsvEntry entry;
+ TMsvId serv;
+ iSession->GetEntry( aMailBoxId.Id(), serv, entry );
+ signatureText = iSettingsApi->SignatureTextL( entry );
+ }
+
+ return signatureText;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
void CIpsPlgSosBasePlugin::DisconnectL(
const TFSMailMsgId& aMailBoxId,
MFSMailRequestObserver& aObserver,
--- a/ipsservices/ipssossettings/bwins/ipssossettingsu.def Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/bwins/ipssossettingsu.def Tue May 11 15:57:15 2010 +0300
@@ -71,4 +71,5 @@
?UpdateMode@CIpsSetDataExtension@@QBE?AW4TIpsSetDataAoUpdateModes@@XZ @ 70 NONAME ; enum TIpsSetDataAoUpdateModes CIpsSetDataExtension::UpdateMode(void) const
?NewLC@CIpsSetDataExtension@@SAPAV1@XZ @ 71 NONAME ; class CIpsSetDataExtension * CIpsSetDataExtension::NewLC(void)
?Protocol@CIpsSetDataExtension@@QBE?AVTUid@@XZ @ 72 NONAME ; class TUid CIpsSetDataExtension::Protocol(void) const
+ ?SignatureTextL@CIpsSetDataApi@@QAEPAVHBufC16@@ABVTMsvEntry@@@Z @ 73 NONAME ; class HBufC16 * CIpsSetDataApi::SignatureTextL(class TMsvEntry const &)
--- a/ipsservices/ipssossettings/eabi/IPSSOSSETTINGSU.DEF Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/eabi/IPSSOSSETTINGSU.DEF Tue May 11 15:57:15 2010 +0300
@@ -122,4 +122,5 @@
_ZTV27CIpsSetUiSubscriptionDialog @ 121 NONAME
_ZTV31CSubscriptionDialogActiveHelper @ 122 NONAME
_ZTV9CIpsSetUi @ 123 NONAME
+ _ZN14CIpsSetDataApi14SignatureTextLERK9TMsvEntry @ 124 NONAME
--- a/ipsservices/ipssossettings/inc/ipssetdataapi.h Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/inc/ipssetdataapi.h Tue May 11 15:57:15 2010 +0300
@@ -167,6 +167,17 @@
TMsvEntry& aService,
const TDesC& aMailboxName );
+ /**
+ * Returns pointer to descriptor containing signature text if signature
+ * has been set to be added to outgoing mails. Otherwise returns NULL
+ * pointer.
+ * Ownership of the descriptor is passed to the caller.
+ * @param aService Service entry for which signature text setting is
+ * * resolved.
+ * @return Pointer to descriptor containing the signature text.
+ */
+ IMPORT_C HBufC* SignatureTextL( const TMsvEntry& aService );
+
private:
/**
--- a/ipsservices/ipssossettings/inc/ipssetuiitemaccesspoint.h Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/inc/ipssetuiitemaccesspoint.h Tue May 11 15:57:15 2010 +0300
@@ -109,6 +109,13 @@
* @return HBufC* Access point name
*/
HBufC* AccessPointNameLC( TInt aIndex );
+
+ /**
+ * Returns Wap index based on its Id.
+ *
+ * @return Index of the wap.
+ */
+ void InitializeSelectionL();
protected: // Constructors
@@ -149,14 +156,7 @@
* @param aBearerFilter Filter for supported bearers.
*/
void InitializeL( const TInt aBearerFilter );
-
- /**
- * Returns Wap index based on its Id.
- *
- * @return Index of the wap.
- */
- void InitializeSelectionL();
-
+
/**
* Returns Wap index based on its Id.
*
--- a/ipsservices/ipssossettings/inc/ipssetutilsconsts.h Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/inc/ipssetutilsconsts.h Tue May 11 15:57:15 2010 +0300
@@ -110,7 +110,8 @@
// default values for ipssetdataextension
//<cmail> cmail has different default value
-const TInt KIpsSetExtDefaultAlwaysOnlineState = EMailAoOff;
+//The default value for sync interval is 1 hour, so ao state should be always on.
+const TInt KIpsSetExtDefaultAlwaysOnlineState = EMailAoAlways;
//</cmail>
const TInt KIpsSetExtDefaultEmailNotificationState = EMailEmnOff;
const TBool KIpsSetExtDefaultHideMsgs = EFalse;
--- a/ipsservices/ipssossettings/src/ipssetdataapi.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/src/ipssetdataapi.cpp Tue May 11 15:57:15 2010 +0300
@@ -30,6 +30,7 @@
#include <etel.h> // RTelServer
#include <etelmm.h> // RMobilePhone
#include <cemailaccounts.h>
+#include <txtrich.h>
#include "ipssetdatastorer.h"
#include "ipssetdata.h"
@@ -45,7 +46,7 @@
#include "ipssetwizardadapter.h"
#include "ipssetwizardsettingscenrepkeys.h"
-
+#include "ipssetdatasignature.h"
const TInt KIpsDataApiMaxPassLen = 256;
const TInt KWizardDataPopIndicator = 0;
@@ -735,6 +736,31 @@
CleanupStack::PopAndDestroy( 2, settingsData ); // dataManager
}
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+EXPORT_C HBufC* CIpsSetDataApi::SignatureTextL( const TMsvEntry& aService )
+ {
+ FUNC_LOG;
+ HBufC* signatureText( NULL );
+ CIpsSetData* settingsData = CIpsSetData::NewLC();
+ CIpsSetDataManager* dataManager = CIpsSetDataManager::NewLC( iSession );
+ dataManager->LoadEmailSettingsL( aService, *settingsData );
+ // the IncludeSignature returns zero in case that inclusion is ON..
+ if ( !settingsData->IncludeSignature() )
+ {
+ CRichText* rText = settingsData->Signature().iRichText;
+ if ( rText )
+ {
+ signatureText = HBufC::NewL( KIpsSetUiMaxSettingsSignatureLength );
+ TPtr sPtr = signatureText->Des();
+ rText->Extract( sPtr, 0, KIpsSetUiMaxSettingsSignatureLength );
+ }
+ }
+ CleanupStack::PopAndDestroy( 2, settingsData ); // dataManager
+ return signatureText;
+ }
+
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
void CIpsSetDataApi::GetImapChildFoldersL(
--- a/ipsservices/ipssossettings/src/ipssetgwizardadapter.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/src/ipssetgwizardadapter.cpp Tue May 11 15:57:15 2010 +0300
@@ -26,6 +26,7 @@
//</cmail>
#include <centralrepository.h> // CRepository
#include <AlwaysOnlineManagerClient.h>
+#include <cmdestination.h>
#include "ipssetwizardadapter.h"
#include "ipssetdatamanager.h"
@@ -414,7 +415,56 @@
aSetData.SetUserAuthentication( CIpsSetData::EUseIncoming );
iap = SetIAPByNameL( iRecomendedAP );
- aSetData.SetIapL( iap, iap );
+
+ TBool setIAP = ETrue;
+ //if IAP isn't set by SettingWizard, we try to get the SNAP.
+ if ( iap.iIAP <= 0 )
+ {
+ //Use SNAP when we got it and it does contain access point.
+ //For other situations as below, we set 'ask when need' or default IAP
+ //1. defConnValue.iType == ECmDefConnAskOnce
+ //2. Got SNAP, but it does not contain any acess point
+ //3. Got default IAP when defConnValue.iType == ECmDefConnConnectionMethod
+ iap.iDialogPref = ECommDbDialogPrefPrompt;
+ iap.iIAP = 0;
+
+ RCmManager cmmgr;
+ cmmgr.OpenLC();
+ TCmDefConnValue defConnValue;
+ cmmgr.ReadDefConnL( defConnValue );
+ //Check default connection is destination or connection method
+ if ( defConnValue.iType == ECmDefConnDestination )
+ {
+ //Get SNAP from cmmgr
+ RCmDestination destination;
+ CleanupClosePushL( destination );
+ destination = cmmgr.DestinationL( defConnValue.iId );
+ //check if SNAP has IAPs
+ if ( destination.ConnectionMethodCount() > 0 )
+ {
+ //if SNAP contain access point, we use SNAP
+ CImIAPPreferences* iapPref = CImIAPPreferences::NewLC();
+ iapPref->SetSNAPL( defConnValue.iId );
+
+ aSetData.SetIapL( *iapPref, *iapPref );
+ CleanupStack::PopAndDestroy( iapPref );
+
+ setIAP = EFalse;
+ }
+ CleanupStack::PopAndDestroy( &destination );
+ }
+ else if( defConnValue.iType == ECmDefConnConnectionMethod )
+ {
+ iap.iDialogPref = ECommDbDialogPrefDoNotPrompt;
+ iap.iIAP = defConnValue.iId;
+ }
+ CleanupStack::PopAndDestroy( &cmmgr );
+ }
+ //If no valid IAP or destination, set zero.
+ if ( setIAP )
+ {
+ aSetData.SetIapL( iap, iap );
+ }
// EIpsSetDataOutSecurityAuth
// EIpsSetDataOutSecurityAuth
}
@@ -517,6 +567,8 @@
TImIAPChoice iap;
TBuf<KWizardMaxUidValue> buf;
CIpsSetUiItemAccessPoint* ipsSetAP = CIpsSetUiItemAccessPoint::NewLC();
+ //Initial IAP list
+ ipsSetAP->InitializeSelectionL();
//<cmail>
iapcount = ipsSetAP->iIapList.Count();
--- a/meetingrequest/mragnversit2/inc/esmrcleanuppointerarray.inl Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mragnversit2/inc/esmrcleanuppointerarray.inl Tue May 11 15:57:15 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005 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"
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: A class for simplifying cleanup of RPointerArrays
-*
+*
*
*/
@@ -23,19 +23,19 @@
@param aRef The RPointerArray to be cleaned up.
@internalTechnology
*/
-template <class T>
+template <class T>
inline void TCleanupPointerArray<T>::PushL(T& aRef)
{
CleanupStack::PushL(TCleanupItem(&ResetAndDestroy, &aRef));
}
-
+
/**
Takes a pointer to an RPointerArray and calls ResetAndDestroy on it.
@param aPtr The RPointerArray
@internalTechnology
*/
template <class T>
-inline void TCleanupPointerArray<class T>::ResetAndDestroy(TAny* aPtr)
+inline void TCleanupPointerArray<T>::ResetAndDestroy(TAny* aPtr)
{
reinterpret_cast<T *>(aPtr)->ResetAndDestroy();
}
@@ -52,4 +52,4 @@
TCleanupPointerArray<T>::PushL(aRef);
}
-// End of file.
\ No newline at end of file
+// End of file.
--- a/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcplugincreatenewmrcmd.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcplugincreatenewmrcmd.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#include "mmrbcplugincommand.h"
#include <e32base.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
class MCalenServices;
class CESMRViewerController;
--- a/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcpluginnewcaleventcommand.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcpluginnewcaleventcommand.h Tue May 11 15:57:15 2010 +0300
@@ -23,8 +23,8 @@
#include <e32base.h>
#include <calentry.h>
-#include <coneresloader.h>
-#include <magnentryui.h>
+#include <ConeResLoader.h>
+#include <MAgnEntryUi.h>
class MCalenServices;
class CESMRViewerController;
--- a/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcpluginopenmrviewercmd.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcpluginopenmrviewercmd.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#include "mmrbcplugincommand.h"
#include <e32base.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
class MCalenServices;
class CESMRViewerController;
--- a/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcplugincmdhandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcplugincmdhandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
#include "cmrbcpluginnewcaleventcommand.h"
#include <calenservices.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <calencommands.hrh>
#include <calenlauncher.h>
#include "emailtrace.h"
--- a/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcplugincreatenewmrcmd.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcplugincreatenewmrcmd.cpp Tue May 11 15:57:15 2010 +0300
@@ -23,14 +23,14 @@
#include <calenservices.h>
#include <calencommands.hrh>
-#include <caleninterimutils2.h>
-#include <cmrviewers.h>
+#include <CalenInterimUtils2.h>
+#include <CMRViewers.h>
#include <calentry.h>
#include <caluser.h>
#include <cmrmailboxutils.h>
#include <ct/rcpointerarray.h>
#include <aknlists.h>
-#include <aknpopup.h>
+#include <aknPopup.h>
#include <utf.h>
#include <bldvariant.hrh>
--- a/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcpluginnewcaleventcommand.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcpluginnewcaleventcommand.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,10 +29,10 @@
#include <calentry.h>
#include <eikappui.h>
#include <eikcmobs.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
#include <calenservices.h>
-#include <aknglobalnote.h>
-#include <caleninterimutils2.h>
+#include <AknGlobalNote.h>
+#include <CalenInterimUtils2.h>
#include <calencommandhandler.h>
#include <bccaleventpolicies.rsg>
#include <data_caging_path_literals.hrh>
--- a/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcpluginopenmrviewercmd.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcpluginopenmrviewercmd.cpp Tue May 11 15:57:15 2010 +0300
@@ -24,14 +24,14 @@
#include <calenservices.h>
#include <calencommands.hrh>
-#include <caleninterimutils2.h>
-#include <cmrviewers.h>
+#include <CalenInterimUtils2.h>
+#include <CMRViewers.h>
#include <calentry.h>
#include <caluser.h>
#include <cmrmailboxutils.h>
#include <ct/rcpointerarray.h>
#include <aknlists.h>
-#include <aknpopup.h>
+#include <aknPopup.h>
#include <utf.h>
#include <calentryview.h>
#include <calinstanceview.h>
@@ -92,7 +92,7 @@
}
}
-//TODO:- displace after nokia provide RIGHT CalenActionUiUtils::FindPossibleInstance
+
CCalInstance* FindPossibleInstanceL(
const TCalenInstanceId& aId, CCalInstanceView& aInstanceView )
{
--- a/meetingrequest/mrbcplugin/group/mrbcplugin.mmp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/group/mrbcplugin.mmp Tue May 11 15:57:15 2010 +0300
@@ -57,7 +57,7 @@
LIBRARY eikcoctl.lib
LIBRARY calinterimapi.lib
LIBRARY caleninterimutils2.lib
-LIBRARY FeatDiscovery.lib
+LIBRARY featdiscovery.lib
#if defined( ENABLE_TRACES ) && defined( TRACE_INTO_FILE )
LIBRARY flogger.lib
--- a/meetingrequest/mrbcplugin/src/cmrbcplugin.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/src/cmrbcplugin.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,10 +29,10 @@
#include <eikmenup.h>
#include <bautils.h>
#include <ecom/ecom.h>
-#include <meetingrequestuids.hrh>
+#include <MeetingRequestUids.hrh>
#include <ct/rcpointerarray.h>
#include <data_caging_path_literals.hrh>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <calencommands.hrh>
#include <featdiscovery.h>
#include <bldvariant.hrh>
@@ -150,7 +150,7 @@
}
break;
}
-
+
default:
{
enabled = EFalse;
@@ -482,7 +482,7 @@
{
CMRBCEventPlugin* eventPlugin = PluginByUidL(
TUid::Uid( KMRBCMREventPluginImplementationUID ) );
-
+
if ( eventPlugin )
{
cmdHandler = eventPlugin->CommandHandler();
@@ -494,7 +494,7 @@
for ( TInt i(0); i < pluginCount && !cmdHandler; ++i )
{
TMRBCPluginCommand pluginCommand;
-
+
TInt err = iPluginResources[i]->Command( aCommand, pluginCommand );
if ( KErrNone == err )
{
@@ -502,10 +502,10 @@
if ( pluginCommand.CheckEntryType() )
{
iEntryLoader->UpdateEntryFromDatabaseL();
-
+
TBCPluginEventType eventType(
EventTypeL( *iServices, iEntryLoader->Entry() ) );
-
+
if ( iPluginResources[i]->SupportsType( eventType)
&& IsCommandSupportedForEntryTypeL( aCommand, eventType ) )
{
@@ -529,7 +529,7 @@
CMRBCEventPlugin* CMRBCPlugin::PluginByUidL( TUid aUid )
{
CMRBCEventPlugin* plugin = NULL;
-
+
for ( TInt i = 0; i < iPluginResources.Count() && !plugin; ++i )
{
if ( iPluginResources[ i ]->PluginImplUid() == aUid )
@@ -537,7 +537,7 @@
plugin = &( iPluginResources[ i ]->PluginL() );
}
}
-
+
return plugin;
}
--- a/meetingrequest/mrcalremoteattachment/api/inc/ccalremoteattachmentapi.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcalremoteattachment/api/inc/ccalremoteattachmentapi.h Tue May 11 15:57:15 2010 +0300
@@ -79,7 +79,7 @@
TUid iDtor_ID_Key;
};
-#include <ccalremoteattachmentapi.inl>
+#include "ccalremoteattachmentapi.inl"
#endif // CCALREMOTEATTACHMENTAPI_H
--- a/meetingrequest/mrcalremoteattachment/api/inc/ccalremoteattachmentapi.inl Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcalremoteattachment/api/inc/ccalremoteattachmentapi.inl Tue May 11 15:57:15 2010 +0300
@@ -11,11 +11,11 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
-#include <calremoteattachmentapidefs.h>
+#include "calremoteattachmentapidefs.h"
#include <ecom/ecom.h>
// simple wrapper class with array deletion on close
@@ -37,19 +37,19 @@
const TDesC8& aUri )
{
TAny* ptr( NULL );
-
+
RImplInfoPtrArrayCalRemoteAttachment implArray;
CleanupClosePushL( implArray );
- REComSession::ListImplementationsL(
+ REComSession::ListImplementationsL(
TUid::Uid( KCalRemoteAttachmentAPIInterface ),
implArray );
-
+
TInt implCount( implArray.Count() );
if ( !implCount )
{
User::Leave( KErrNotFound );
}
-
+
for ( TInt i(0); i < implCount && !ptr; ++i )
{
TPtrC8 datatype( implArray[i]->DataType() );
@@ -59,10 +59,10 @@
TUid implUid = implArray[i]->ImplementationUid();
ptr = REComSession::CreateImplementationL( implUid,
keyOffset,
- NULL );
+ NULL );
}
}
-
+
User::LeaveIfNull( ptr );
CleanupStack::PopAndDestroy( &implArray );
return reinterpret_cast<CCalRemoteAttachmentApi*>(ptr);
--- a/meetingrequest/mrcalremoteattachment/api/inc/mcalremoteattachmentinfo.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcalremoteattachment/api/inc/mcalremoteattachmentinfo.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#define MCALREMOTEATTACHMENTINFO_H
#include <e32base.h>
-#include <mcalremoteattachment.h>
+#include "mcalremoteattachment.h"
/**
* MCalRemoteAttachmentInfo encapsulates calendar entry attachment information.
--- a/meetingrequest/mrcalremoteattachment/remoteattachment/inc/ccalremoteattachmentinfo.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcalremoteattachment/remoteattachment/inc/ccalremoteattachmentinfo.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#define CCALREMOTEATTACHMENTINFO_H
#include <e32base.h>
-#include <mcalremoteattachmentinfo.h>
+#include "mcalremoteattachmentinfo.h"
class CCalRemoteAttachment;
--- a/meetingrequest/mrcasplugin/inc/cesmrcaspluginimpl.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/inc/cesmrcaspluginimpl.h Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
#include "cfsccontactactionplugin.h"
#include "mfscreasoncallback.h"
#include "cesmrcascontactaction.h"
-#include <cagnentryui.h>
+#include <CAgnEntryUi.h>
#include <calsession.h>
#include "mfsccontactsetobserver.h"
//</cmail>
--- a/meetingrequest/mrcasplugin/inc/cesmrcaspluginuilauncher.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/inc/cesmrcaspluginuilauncher.h Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
#define CESMRCASPLUGINUILAUNCHER_H
#include <e32base.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
#include <badesca.h>
class CCalSession;
--- a/meetingrequest/mrcasplugin/src/cesmrcascontactaction.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/src/cesmrcascontactaction.cpp Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
#include "emailtrace.h"
#include "cesmrcascontactaction.h"
-#include <stringloader.h>
+#include <StringLoader.h>
#include <gulicon.h>
// ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrcasplugin/src/cesmrcasplugincontactretriever.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/src/cesmrcasplugincontactretriever.cpp Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : Implementation of the class CESMRCasPluginImpl.
- * Version : %version: e002sa33#6 % << Don't touch! Updated by Synergy at check-out.
+ * Version : %version: e002sa32#6.1.1 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -27,7 +27,7 @@
#include <esmrcasplugin.mbg>
#include <caluser.h>
-#include <mvpbkstorecontact.h>
+#include <MVPbkStoreContact.h>
#include <data_caging_path_literals.hrh>
#include <badesca.h>
@@ -39,10 +39,10 @@
#include "mfsccontactsetobserver.h"
#include "tfsccontactactionpluginparams.h"
//</cmail>
-#include <mvpbkstorecontactfield.h>
-#include <mvpbkfieldtype.h>
-#include <tvpbkfieldversitproperty.h>
-#include <vpbkfieldtype.hrh>
+#include <MVPbkStoreContactField.h>
+#include <MVPbkFieldType.h>
+#include <TVPbkFieldVersitProperty.h>
+#include <VPbkFieldType.hrh>
// Unnamed namespace for local definitions
namespace { // codescanner::namespace
--- a/meetingrequest/mrcasplugin/src/cesmrcaspluginimpl.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/src/cesmrcaspluginimpl.cpp Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : Implementation of the class CESMRCasPluginImpl.
- * Version : %version: e002sa33#9 % << Don't touch! Updated by Synergy at check-out.
+ * Version : %version: e002sa32#9.1.1 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -27,17 +27,17 @@
#include <esmrcasplugindata.rsg>
#include <esmrcasplugin.mbg>
-#include <mvpbkstorecontact.h>
+#include <MVPbkStoreContact.h>
#include <data_caging_path_literals.hrh>
#include <coemain.h>
#include <calsession.h>
#include <cmrmailboxutils.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <badesca.h>
#include <ecom/implementationproxy.h>
-#include <stringloader.h>
-#include <akniconutils.h>
+#include <StringLoader.h>
+#include <AknIconUtils.h>
#include <bautils.h>
//<cmail>
#include "mfscactionutils.h"
--- a/meetingrequest/mrcasplugin/src/cesmrcaspluginuilauncher.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/src/cesmrcaspluginuilauncher.cpp Tue May 11 15:57:15 2010 +0300
@@ -25,22 +25,22 @@
#include <badesca.h>
//<cmail>
#include "tfsccontactactionpluginparams.h"
-#include <mvpbkstorecontact.h>
-#include <caleninterimutils2.h>
+#include <MVPbkStoreContact.h>
+#include <CalenInterimUtils2.h>
#include <cmrmailboxutils.h>
#include <calsession.h>
#include <calentry.h>
-#include <cagnentryui.h>
+#include <CAgnEntryUi.h>
#include <caluser.h>
#include "mfscactionutils.h"
//</cmail>
-#include <aknpopup.h>
+#include <aknPopup.h>
#include <aknlists.h>
#include <utf.h>
#include <ecom/ecom.h>
#include "esmrcommands.h"
#include <esmrcasplugindata.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <aknnotewrappers.h>
--- a/meetingrequest/mrcmailremoteattachmentplugin/group/mrcmailremoteattachmentplugin.mmp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcmailremoteattachmentplugin/group/mrcmailremoteattachmentplugin.mmp Tue May 11 15:57:15 2010 +0300
@@ -41,9 +41,6 @@
USERINCLUDE ../../../inc
APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE /epoc32/include/ecom //TODO: Remove when Cmail headers are fixed
-
-
SOURCEPATH ../data/
START RESOURCE mrcmailremoteattachmentplugin.rss
--- a/meetingrequest/mrcommon/inc/esmrentryhelper.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcommon/inc/esmrentryhelper.h Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
#include "esmrdef.h"
#include <e32base.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
class CCalEntry;
class CCalAttendee;
--- a/meetingrequest/mrcommon/src/esmrentryhelper.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcommon/src/esmrentryhelper.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,9 +29,9 @@
#include <calrrule.h>
#include <caluser.h>
#include <msvids.h>
-#include <msgmailuids.h>
+#include <MsgMailUIDs.h>
#include <cmrmailboxutils.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
// unnamed naespace for local definitions
namespace { // codescanner::namespace
--- a/meetingrequest/mrcommon/src/esmrhelper.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcommon/src/esmrhelper.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,8 +29,8 @@
#include <bautils.h>
#include <coemain.h>
#include <msvids.h>
-#include <senduiconsts.h>
-#include <caleninterimutils2.h>
+#include <SendUiConsts.h>
+#include <CalenInterimUtils2.h>
#include <calalarm.h>
#include <calrrule.h>
#include <calattachment.h>
@@ -39,8 +39,8 @@
#include <ct/rcpointerarray.h>
#include <utf.h>
#include <aknlists.h>
-#include <aknpopup.h>
-#include <calendarinternalcrkeys.h>
+#include <aknPopup.h>
+#include <CalendarInternalCRKeys.h>
#include <data_caging_path_literals.hrh>
//<cmail> hardcoded paths removal
#include <pathinfo.h>
@@ -1553,8 +1553,6 @@
}
case CCalEntry::ETodo:
{
- // Todo has only due date => Adding date from that,
- // Hour, minute and second as default values
tempStart = aSourceEntry.StartTimeL().TimeLocalL().DateTime();
tempStart.SetHour( KDefaultMeetingStartHour );
tempStart.SetMinute( 0 );
--- a/meetingrequest/mrcommon/src/nmrglobalfeaturesettings.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcommon/src/nmrglobalfeaturesettings.cpp Tue May 11 15:57:15 2010 +0300
@@ -17,7 +17,7 @@
#include "nmrglobalfeaturesettings.h"
-#include <avkoninternalcrkeys.h>
+#include <AvkonInternalCRKeys.h>
#include <centralrepository.h>
using namespace NMRGlobalFeatureSettings;
--- a/meetingrequest/mrdb/inc/cesmrentrycmditeratorao.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrdb/inc/cesmrentrycmditeratorao.h Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
// INCLUDE FILES
#include <e32base.h>
-#include <cmrutils.h>
+#include <CMRUtils.h>
// FORWARD DECLARATIONS
class MESMRCalDbMgr;
--- a/meetingrequest/mrdb/src/cesmrcaldbmgr.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrdb/src/cesmrcaldbmgr.cpp Tue May 11 15:57:15 2010 +0300
@@ -36,9 +36,9 @@
#include <calentry.h>
#include <calcommon.h>
#include <caluser.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <sysutil.h>
-#include <errorui.h>
+#include <ErrorUI.h>
#include <coemain.h>
#include <calcalendarinfo.h>
#include <centralrepository.h>
--- a/meetingrequest/mrgui/data/esmrgui.rss Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/data/esmrgui.rss Tue May 11 15:57:15 2010 +0300
@@ -22,9 +22,9 @@
#include <avkon.rh>
#include <avkon.rsg>
#include <avkon.loc>
-#include <aiwcommon.rh>
-#include <aiwgenericparam.hrh>
-#include <aiwcommon.hrh> // for service commands
+#include <AiwCommon.rh>
+#include <AiwGenericParam.hrh>
+#include <AiwCommon.hrh> // for service commands
#include <esmrgui.mbg>
#include <mrui.loc>
--- a/meetingrequest/mrgui/data/mrguiattachmentresources.rss Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/data/mrguiattachmentresources.rss Tue May 11 15:57:15 2010 +0300
@@ -16,7 +16,7 @@
*/
#include <avkon.loc>
-#include <commondialogs.rh>
+#include <CommonDialogs.rh>
RESOURCE AVKON_LIST_QUERY r_attachment_type_query_dialog
{
@@ -33,7 +33,6 @@
AVKON_LIST_QUERY_LIST
{
};
- // TODO: loc string
heading = "Select Option";
};
}
@@ -183,11 +182,11 @@
}
RESOURCE TBUF r_meet_req_attachment_file_kilobyte
{
- buf = qtn_meet_req_note_attachment_progress_kilobyte; // TODO: qtn_meet_req_attachment_file_kilobyte;
+ buf = qtn_meet_req_attachment_file_kilobyte;
}
RESOURCE TBUF r_meet_req_attachment_file_megabyte
{
- buf = qtn_meet_req_note_attachment_progress_megabyte; //TODO: qtn_meet_req_attachment_file_megabyte;
+ buf = qtn_meet_req_attachment_file_megabyte;
}
RESOURCE TBUF r_qtn_meet_req_info_already_attached
{
@@ -223,7 +222,7 @@
*/
RESOURCE TBUF r_qtn_meet_req_attachments_download_prefix
{
- buf = "#%0N% %1U"; //TODO: qtn_meet_req_attachments_download_prefix;
+ buf = qtn_meet_req_attachments_download_prefix;
}
RESOURCE TBUF r_meet_req_info_cannot_open_attachment
{
--- a/meetingrequest/mrgui/group/esmrgui.mmp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/group/esmrgui.mmp Tue May 11 15:57:15 2010 +0300
@@ -146,7 +146,7 @@
LIBRARY commonui.lib
LIBRARY npdlib.lib
LIBRARY lbs.lib
-LIBRARY FeatDiscovery.lib
+LIBRARY featdiscovery.lib
LIBRARY gdi.lib
#ifdef RD_USE_MYLOCATIONUI
--- a/meetingrequest/mrgui/inc/cesmraddressinfohandler.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmraddressinfohandler.h Tue May 11 15:57:15 2010 +0300
@@ -22,8 +22,8 @@
// Includes
#include <e32base.h>
-#include <mvpbksinglecontactoperationobserver.h>
-#include <aiwcommon.h>
+#include <MVPbkSingleContactOperationObserver.h>
+#include <AiwCommon.h>
#include "resmrstatic.h"
#include "cesmrcontactmanagerhandler.h"
--- a/meetingrequest/mrgui/inc/cesmreditordialog.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmreditordialog.h Tue May 11 15:57:15 2010 +0300
@@ -18,9 +18,9 @@
#ifndef CESMREDITORDIALOG_H
#define CESMREDITORDIALOG_H
-#include <akndialog.h>
+#include <AknDialog.h>
#include <akntoolbarobserver.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include "mesmruibase.h"
#include "mesmrresponseobserver.h"
#include "mesmrfieldeventobserver.h"
@@ -263,7 +263,6 @@
* Indicates if location has been modified.
*/
TBool iLocationModified;
- // TODO: Take this into use when implementing the toolbar
/// Own: Toolbar handler
CMRToolbar* iToolbar;
--- a/meetingrequest/mrgui/inc/cesmrresponsedialog.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmrresponsedialog.h Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
#define CESMRRESPONSEDIALOG_H
// INCLUDES
-#include <akndialog.h>
+#include <AknDialog.h>
// FORWARD DECLARATIONS
class CAknsBasicBackgroundControlContext;
--- a/meetingrequest/mrgui/inc/cesmrtrackingviewdialog.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmrtrackingviewdialog.h Tue May 11 15:57:15 2010 +0300
@@ -12,14 +12,14 @@
* Contributors:
*
* Description : ESMR tracking viewe dialog
-* Version : %version: e002sa33#7 %
+* Version : %version: e002sa32#7.1.1 %
*
*/
#ifndef CESMRTRACKINGVIEWDIALOG_H
#define CESMRTRACKINGVIEWDIALOG_H
// SYSTEM INCLUDE
-#include <akndialog.h>
+#include <AknDialog.h>
#include <caluser.h>
//#include <aknlists.h>
--- a/meetingrequest/mrgui/inc/cesmrview.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmrview.h Tue May 11 15:57:15 2010 +0300
@@ -184,11 +184,6 @@
TInt aResourceId,
CEikMenuPane* aMenuPane );
- /*
- * Relayouts view by calling size changed.
- */
- void ReLayout();
-
/**
* Processes event.
* @param aEvent Reference to event to be processed
@@ -255,6 +250,7 @@
void LaunchHelpL( const TDesC& aContext );
void SetTitlePaneObserver();
TRect CalculateAttachmentIndicatorLayout();
+ TRect ContainerRect() const;
private: // data
--- a/meetingrequest/mrgui/inc/cesmrviewerdialog.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmrviewerdialog.h Tue May 11 15:57:15 2010 +0300
@@ -17,9 +17,9 @@
#ifndef CESMRVIEWERDIALOG_H
#define CESMRVIEWERDIALOG_H
-#include <akndialog.h>
+#include <AknDialog.h>
#include <akntoolbarobserver.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include "mesmruibase.h"
#include "mesmrresponseobserver.h"
#include "resmrstatic.h"
--- a/meetingrequest/mrgui/inc/cmrlistpane.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cmrlistpane.h Tue May 11 15:57:15 2010 +0300
@@ -38,7 +38,7 @@
class MTouchFeedback;
// CLASS DECLARATIONS
-NONSHARABLE_CLASS( CMRListPane ) :
+NONSHARABLE_CLASS( CMRListPane ) :
public CCoeControl,
public MAknLongTapDetectorCallBack,
public MMRPhysicsObserver,
@@ -47,26 +47,26 @@
public: // Creation and destruction
/**
* Static constructor.
- *
+ *
* @return New instance of this class
*/
static CMRListPane* NewL( const CCoeControl& aParent,
MESMRFieldStorage& aFactory,
- TAknDoubleSpanScrollBarModel& aScrollModel,
- CAknDoubleSpanScrollBar& aScroll,
+ TAknDoubleSpanScrollBarModel& aScrollModel,
+ CAknDoubleSpanScrollBar& aScroll,
MMRScrollBarObserver& aScrollBarObserver );
/**
* Destructor
*/
~CMRListPane();
-
+
public: // Interface
/**
* Initializes all fields. Needed when theme changes
*/
void InitializeL();
-
+
/**
* InternalizeL is used to obtain the data from current CCalEntry.
* CCalEntry is wrapped inside MESMRCalEntry object. This call is
@@ -86,7 +86,7 @@
* @see MESMRCalEntry
*/
void ExternalizeL( MESMRCalEntry& aEntry, TBool aForceValidation = EFalse );
-
+
/**
* Disables or enables relayouting.
*
@@ -98,57 +98,57 @@
* Scroll the list to put the responeArea at the top and
* set the focus on it
*/
- void InitialScrollL(); // TODO: Fix me.
-
+ void InitialScrollL();
+
/**
* Return focused field.
* @return Focused list item or NULL if no focused item
*/
CESMRField* FocusedField() const;
-
+
/**
* Sets the field focused based on the given field id.
* @param aFieldId Id of the field to be focused
*/
void SetControlFocusedL( TESMREntryFieldId aFieldId );
-
+
/**
* Return clicked list item.
* @return Clicked list item or NULL if no valid clicked item
*/
CESMRField* ClickedField() const;
-
+
/**
* Sets field to be visible in the list.
*
* @param aField - id of the field.
*/
void ShowControl( TESMREntryFieldId aFieldId );
-
+
/**
* Is field visible or not.
*
* @return Boolean ETrue/EFalse
*/
TBool IsControlVisible( TESMREntryFieldId aFieldId );
-
+
/**
* Get response field type of current event.
* @Return TESMREntryFieldId
*/
TESMREntryFieldId GetResponseFieldsFieldId();
-
+
/**
* Activates new fields which has been added into the storage
* after list pane construction.
*/
void ReActivateL();
-
+
public: // MMRFieldContainerObserver
void ScrollFieldsUp( TInt aPx );
void ScrollFieldsDown( TInt aPx );
void UpdateScrollBarAndPhysics();
-
+
public: // From CCoeControl
TKeyResponse OfferKeyEventL( const TKeyEvent &aKeyEvent,
TEventCode aType );
@@ -159,32 +159,32 @@
CCoeControl* ComponentControl( TInt aIndex) const;
void HandlePointerEventL( const TPointerEvent &aPointerEvent );
void ActivateL();
-
+
private: // From MMRPhysicsObserver
void PhysicsEmulationEnded();
void UpdateScrollBarDuringOngoingPhysics();
-
+
private: // From MAknLongTapDetectorCallBack
void HandleLongTapEventL(
- const TPoint& aPenEventLocation,
+ const TPoint& aPenEventLocation,
const TPoint& aPenEventScreenLocation );
-
+
private: // Implementation
CMRListPane( MESMRFieldStorage& aFactory,
- TAknDoubleSpanScrollBarModel& aScrollModel,
- CAknDoubleSpanScrollBar& aScroll,
+ TAknDoubleSpanScrollBarModel& aScrollModel,
+ CAknDoubleSpanScrollBar& aScroll,
MMRScrollBarObserver& aScrollBarObserver );
void ConstructL( const CCoeControl& aParent );
void DoUpdateScrollBar( TInt aFocusPosition = KErrNotFound );
TInt UpdatedFocusPosition();
- void SetFocusAfterPointerEventL(
+ void SetFocusAfterPointerEventL(
const TPointerEvent &aPointerEvent );
void UpdateClickedField( const TPointerEvent &aPointerEvent );
TBool HiddenFocus();
void ForwardReceivedPointerEventsToChildrenL();
void HandleTactileFeedback( const TTouchLogicalFeedback& aType );
TBool FeedbackScrollMarginExceeded( TInt aMargin );
-
+
private: // Data
/// Ref: Storage for list items.
MESMRFieldStorage& iFactory;
@@ -200,16 +200,16 @@
CMRListPanePhysics* iPhysics;
/// Ref: Observer for updating scroll bar revents
MMRScrollBarObserver& iScrollBarObserver;
- /// Not owned: A field which got a pointer down event,
+ /// Not owned: A field which got a pointer down event,
/// nulled when focus is changed via keyboard
CESMRField* iClickedField;
/// Own: Boolean for disabling SizeChanged handling
TBool iDisableSizeChanged;
/// Own: Boolean to check, if physics action is ongoing or not
TBool iPhysicsActionOngoing;
- /// Own: Record if the long tapping event have been comsumed, if yes,
+ /// Own: Record if the long tapping event have been comsumed, if yes,
/// then do not handle signal pointer event anymore.
- TBool iLongTapEventConsumed;
+ TBool iLongTapEventInProgess;
/// Ref: Reference to tactile feedback
MTouchFeedback* iTactileFeedback;
/// Own: This records vertical scroll index for tactile feedback
@@ -217,6 +217,6 @@
/// Own: This records default field height for tactile feedback during scroll
TInt iDefaultFieldHeight;
};
-
+
#endif // CMRLISTPANE_H
// End of file
--- a/meetingrequest/mrgui/loc/mrui.loc Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/loc/mrui.loc Tue May 11 15:57:15 2010 +0300
@@ -1246,7 +1246,7 @@
// l: fscal_editor_field_text_2
// r: TB9.2
//
-#define qtn_meet_req_attachment_file_less_than_kilobyte "%0U (< 1 kB)"
+#define qtn_meet_req_attachment_file_less_than_kilobyte "%0U (Max. 1 kB)"
// d: Heading text for forwarding this occurence or series list popup query
// l: heading_pane_t1
--- a/meetingrequest/mrgui/mrfieldbuildercommon/bwins/esmrfieldbuildercommonu.def Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/bwins/esmrfieldbuildercommonu.def Tue May 11 15:57:15 2010 +0300
@@ -14,7 +14,7 @@
?GetSelectedLink@CESMRRichTextViewer@@QBEPBVCESMRRichTextLink@@XZ @ 13 NONAME ; class CESMRRichTextLink const * CESMRRichTextViewer::GetSelectedLink(void) const
?FieldViewMode@CESMRField@@QBE?AW4TESMRFieldType@@XZ @ 14 NONAME ; enum TESMRFieldType CESMRField::FieldViewMode(void) const
?FocusChanged@CESMRRichTextViewer@@UAEXW4TDrawNow@@@Z @ 15 NONAME ; void CESMRRichTextViewer::FocusChanged(enum TDrawNow)
- ?HandlePointerEventL@CESMRField@@EAEXABUTPointerEvent@@@Z @ 16 NONAME ; void CESMRField::HandlePointerEventL(struct TPointerEvent const &)
+ ?HandlePointerEventL@CESMRField@@MAEXABUTPointerEvent@@@Z @ 16 NONAME ; void CESMRField::HandlePointerEventL(struct TPointerEvent const &)
??1CESMREditor@@UAE@XZ @ 17 NONAME ; CESMREditor::~CESMREditor(void)
?NewL@CESMRRichTextViewer@@SAPAV1@PBVCCoeControl@@@Z @ 18 NONAME ; class CESMRRichTextViewer * CESMRRichTextViewer::NewL(class CCoeControl const *)
?SetListObserver@CESMRField@@UAEXPAVMESMRListObserver@@@Z @ 19 NONAME ; void CESMRField::SetListObserver(class MESMRListObserver *)
@@ -117,4 +117,6 @@
?GetLimitLength@CESMREditor@@QBEHXZ @ 116 NONAME ; int CESMREditor::GetLimitLength(void) const
?SetFieldMode@CESMRField@@QAEXW4TESMRFieldMode@@@Z @ 117 NONAME ; void CESMRField::SetFieldMode(enum TESMRFieldMode)
?ResetActionMenuL@CESMRRichTextViewer@@QBEXXZ @ 118 NONAME ; void CESMRRichTextViewer::ResetActionMenuL(void) const
+ ?SupportsLongTapFunctionalityL@CESMRField@@UAEHABUTPointerEvent@@@Z @ 119 NONAME ; int CESMRField::SupportsLongTapFunctionalityL(struct TPointerEvent const &)
+ ?PointerEventOccuresOnALinkL@CESMRRichTextViewer@@QAEHABUTPointerEvent@@@Z @ 120 NONAME ; int CESMRRichTextViewer::PointerEventOccuresOnALinkL(struct TPointerEvent const &)
--- a/meetingrequest/mrgui/mrfieldbuildercommon/eabi/esmrfieldbuildercommonu.def Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/eabi/esmrfieldbuildercommonu.def Tue May 11 15:57:15 2010 +0300
@@ -147,4 +147,5 @@
_ZThn8_N15CMRAttachmentUiD1Ev @ 146 NONAME
_ZN19CESMRRichTextViewer12SetFocusLinkEi @ 147 NONAME
_ZNK19CESMRRichTextViewer12GetFocusLinkEv @ 148 NONAME
-
+ _ZN10CESMRField29SupportsLongTapFunctionalityLERK13TPointerEvent @ 149 NONAME
+ _ZN19CESMRRichTextViewer27PointerEventOccuresOnALinkLERK13TPointerEvent @ 150 NONAME
--- a/meetingrequest/mrgui/mrfieldbuildercommon/inc/cesmrfield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/inc/cesmrfield.h Tue May 11 15:57:15 2010 +0300
@@ -297,20 +297,20 @@
* Tests if field control has been activated.
*/
IMPORT_C TBool IsFieldActivated() const;
-
+
/**
* Provides possibility for field to dynamically
* intialize context menu.
- *
+ *
* @param aResourceId Context menu resource ID
* @param aMenuPane Pointer to menu pane
*/
IMPORT_C virtual void DynInitMenuPaneL(
TInt aResourceId,
CEikMenuPane* aMenuPane );
-
+
/**
- * Setter for field view mode. Enumeration TESMRFieldType
+ * Setter for field view mode. Enumeration TESMRFieldType
* lists possible view modes.
* @param aViewMode View mode of the field
*/
@@ -321,25 +321,33 @@
* @return Field view mode
*/
IMPORT_C TESMRFieldType FieldViewMode() const;
-
+
/**
* Updates field extension control and takes ownership
* @param aControl Pointer to extension control.
*/
IMPORT_C void UpdateExtControlL(
CCoeControl* aControl );
-
+
/**
- * Set field as locked field(can't be deleted or edited)
+ * Set field as locked field(can't be deleted or edited)
*/
IMPORT_C void virtual LockL();
-
+
/**
* Get lock status of the field
- * @return ETrue shows field locked EFalse shows field not locked
+ * @return ETrue shows field locked EFalse shows field not locked
*/
IMPORT_C TBool IsLocked();
+ /**
+ * Finds out if field supports longtap functionality or not
+ * @param aPointerEvent, where the event actually occured
+ * @return ETrue if field supports longtap functionality
+ */
+ IMPORT_C virtual TBool SupportsLongTapFunctionalityL(
+ const TPointerEvent &aPointerEvent );
+
protected:
/**
@@ -416,7 +424,7 @@
IMPORT_C virtual CCoeControl* ComponentControl( TInt aInd ) const;
IMPORT_C virtual TSize MinimumSize();
-private: // From base class CCoeControl
+protected: // From base class CCoeControl
/**
* Implements pointer event handling for fields.
@@ -447,13 +455,13 @@
* Returns the event observer interface
*/
IMPORT_C MESMRFieldEventObserver* EventObserver() const;
-
+
/**
* Initiates tactile feedback when called
*/
IMPORT_C void HandleTactileFeedbackL();
-
-
+
+
private:
void AquireTactileFeedback();
--- a/meetingrequest/mrgui/mrfieldbuildercommon/inc/cesmrrichtextviewer.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/inc/cesmrrichtextviewer.h Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : CEikRichTextEditor based Rich Text viewer
-* Version : %version: e002sa32#19 %
+* Version : %version: e002sa32#19.1.1 %
*
*/
@@ -217,7 +217,7 @@
* Applies the layout changes to the rich text component.
*/
IMPORT_C void ApplyLayoutChangesL();
-
+
/*
* Set selected link according to the index in the array.
* @param aLinkIndex the index of link need to be selected.
@@ -230,6 +230,13 @@
*/
IMPORT_C TInt GetFocusLink( ) const;
+ /*
+ * Finds out if given pointer event occured on a link
+ * @param aPointerEvent, the event to which the possible link areas are compared to
+ * @return TBool, ETrue if pointer event occured on a link
+ */
+ IMPORT_C TBool PointerEventOccuresOnALinkL( const TPointerEvent &aPointerEvent );
+
protected: // From MEikCommandObserver
/**
--- a/meetingrequest/mrgui/mrfieldbuildercommon/inc/cmrattachmentprogressinfo.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/inc/cmrattachmentprogressinfo.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#define CMRATTACHMENTPROGRESSINFO_H
// INCLUDES
-#include <aknprogressdialog.h>
+#include <AknProgressDialog.h>
#include <f32file.h>
#include "cmrfilemanager.h"
--- a/meetingrequest/mrgui/mrfieldbuildercommon/inc/cmrattachmentui.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/inc/cmrattachmentui.h Tue May 11 15:57:15 2010 +0300
@@ -21,10 +21,10 @@
// INCLUDES
#include <e32base.h>
#include <f32file.h> // RFs
-#include <mediafiletypes.hrh> // TMediaFileType
-#include <aknprogressdialog.h> // MProgressDialogCallback
-#include <mmgfetchverifier.h>
-#include <maknfileselectionobserver.h>
+#include <MediaFileTypes.hrh> // TMediaFileType
+#include <AknProgressDialog.h> // MProgressDialogCallback
+#include <MMGFetchVerifier.h>
+#include <MAknFileSelectionObserver.h>
// FORWARD DECLARATIONS
class MESMRCalEntry;
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -30,8 +30,8 @@
#include <eikenv.h>
#include <baclipb.h>
#include <eikbtgpc.h>
-#include <stringloader.h>
-#include <aknutils.h>
+#include <StringLoader.h>
+#include <AknUtils.h>
#include <touchfeedback.h>
// ======== MEMBER FUNCTIONS ========
@@ -77,8 +77,6 @@
FUNC_LOG;
iExtControl = aControl;
- // TODO: This should be made in ConstructL instead as soon we
- // get rid of old CESMRLayoutManager.
iBackground = CMRBackground::NewL();
this->SetBackground( iBackground );
}
@@ -825,6 +823,7 @@
//
EXPORT_C void CESMRField::LockL()
{
+ FUNC_LOG;
iLocked = ETrue;
}
@@ -834,9 +833,21 @@
//
EXPORT_C TBool CESMRField::IsLocked()
{
+ FUNC_LOG;
return iLocked;
}
+// ---------------------------------------------------------------------------
+// CESMRField::SupportsLongTapFunctionalityL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CESMRField::SupportsLongTapFunctionalityL(
+ const TPointerEvent &aPointerEvent )
+ {
+ FUNC_LOG;
+ // Subclasses may override for field specific actions
+ return EFalse;
+ }
// ---------------------------------------------------------------------------
// CESMRField::HandleTactileFeedbackL
@@ -847,7 +858,7 @@
FUNC_LOG;
AquireTactileFeedback();
-
+
if ( iTactileFeedback && iTactileFeedback->FeedbackEnabledForThisApp() )
{
iTactileFeedback->InstantFeedback( ETouchFeedbackBasic );
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrrichtextviewer.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrrichtextviewer.cpp Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : CEikRichTextEditor based Rich Text viewer
-* Version : %version: e002sa33#40 %
+* Version : %version: e002sa32#41 %
*
*/
@@ -720,7 +720,7 @@
{
return linkIndex;
}
-
+
TCursorSelection currentSelection = Selection();
for ( TInt i = 0; i < iLinkList.Count(); ++i )
@@ -743,6 +743,40 @@
}
// -----------------------------------------------------------------------------
+// CESMRRichTextViewer::PointerEventOccuresOnALinkL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CESMRRichTextViewer::PointerEventOccuresOnALinkL(
+ const TPointerEvent &aPointerEvent )
+ {
+ FUNC_LOG;
+ TBool ret( EFalse );
+
+ RRegion linkArea;
+ CleanupClosePushL( linkArea );
+
+ // Find matching link
+ TInt count( iLinkList.Count() );
+
+ for ( TInt i = 0; i < count; ++i )
+ {
+ CESMRRichTextLink* link = iLinkList[ i ];
+ GetLinkAreaL( linkArea, *link );
+
+ if ( linkArea.Contains( aPointerEvent.iPosition ) )
+ {
+ ret = ETrue;
+ break;
+ }
+ }
+
+ CleanupStack::PopAndDestroy( &linkArea );
+
+ return ret;
+ }
+
+
+// -----------------------------------------------------------------------------
// CESMRRichTextViewer::CESMRRichTextViewer
// -----------------------------------------------------------------------------
//
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrattachmentprogressinfo.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrattachmentprogressinfo.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,8 +19,8 @@
#include <esmrgui.rsg>
#include <eikprogi.h>
-#include <aknwaitdialog.h>
-#include <stringloader.h>
+#include <AknWaitDialog.h>
+#include <StringLoader.h>
// Unnamed namespace for local definitions
namespace { // codescanner::namespace
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrattachmentui.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrattachmentui.cpp Tue May 11 15:57:15 2010 +0300
@@ -23,20 +23,20 @@
#include "cesmrglobalnote.h"
#include "esmrhelper.h"
-#include <mgfetch.h>
+#include <MGFetch.h>
#include <aknlistquerydialog.h>
#include <sysutil.h>
#include <calattachment.h>
-#include <npdapi.h>
-#include <akncommondialogsdynmem.h>
+#include <NpdApi.h>
+#include <AknCommonDialogsDynMem.h>
#include <apparc.h>
#include <esmrgui.rsg>
#include <apgcli.h>
#include <apmrec.h>
-#include <commoncontentpolicy.h>
+#include <CommonContentPolicy.h>
#include <ct/rcpointerarray.h>
#include <aknnotewrappers.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include "emailtrace.h"
@@ -471,8 +471,6 @@
{
FUNC_LOG;
- // TODO: Launch attachment view
- // read attachments from calentry and populate the listbox
}
// ---------------------------------------------------------------------------
@@ -593,7 +591,6 @@
isProtected = ccp->IsClosedFileL( aFile );
if ( isProtected )
{
- // TODO: Add suitable note to cesmrglobalnote.cpp
CESMRGlobalNote::ExecuteL
( CESMRGlobalNote::EESMRAlarmAlreadyPassed );
}
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrbackground.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrbackground.cpp Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
#include "cmrbackground.h"
#include "nmrglobalfeaturesettings.h"
-#include <aknutils.h>
+#include <AknUtils.h>
// unnamed namespace for local definitions
@@ -121,15 +121,6 @@
}
}
}
- // TODO: Need to be removed after ui designer says that it can be removed.
- // else
- // {
- // if( ctrl.FieldMode() == EESMRFieldModeEdit )
- // {
- // // Not focused editor field
- // DrawFocus( aGc, rect, aControl, EEditorFieldNoFocus );
- // }
- // }
}
}
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrgrid.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrgrid.cpp Tue May 11 15:57:15 2010 +0300
@@ -21,17 +21,17 @@
#include "nmrlayoutmanager.h"
#include "esmrhelper.h"
-#include <stringloader.h>
-#include <akniconarray.h>
-#include <akngrid.h>
-#include <akngridm.h>
+#include <StringLoader.h>
+#include <AknIconArray.h>
+#include <AknGrid.h>
+#include <AknGridM.h>
#include <aknlists.h>
-#include <aknutils.h>
-#include <aknpopup.h>
+#include <AknUtils.h>
+#include <aknPopup.h>
#include <avkon.hrh>
#include <e32base.h>
#include <gulicon.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
#include <esmrgui.mbg>
#include <esmrgui.rsg>
#include <data_caging_path_literals.hrh>
@@ -235,7 +235,6 @@
// The order of the items should be in line with
// CMRAttachmentUi::ResolveAttachmentTypeL switch case items.
- // TODO: update texts to be read from resource
HBufC* textImage = StringLoader::LoadLC(
R_QTN_MEET_REQ_ATTACHMENT_TYPE_IMAGE );
gridItemArray->AppendL( _L("0\tImage") /*textImage*/ );
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrsubjectfield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrsubjectfield.h Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
#include <e32cmn.h>
#include <eikedwob.h>
-#include <aknscontrolcontext.h>
+#include <AknsControlContext.h>
#include "cesmrfield.h"
#include "nmrbitmapmanager.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdescriptionfield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdescriptionfield.h Tue May 11 15:57:15 2010 +0300
@@ -47,7 +47,7 @@
// Destructor
~CESMRViewerDescriptionField();
-public: // From CESMRField
+protected: // From CESMRField
void InternalizeL( MESMRCalEntry& aEntry );
void InitializeL();
void GetCursorLineVerticalPos( TInt& aUpper, TInt& aLower );
@@ -55,6 +55,8 @@
TBool ExecuteGenericCommandL( TInt aCommand );
void SetOutlineFocusL( TBool aFocus );
void HandleLongtapEventL( const TPoint& aPosition );
+ TBool SupportsLongTapFunctionalityL(
+ const TPointerEvent &aPointerEvent );
public: // From CCoeControl
TKeyResponse OfferKeyEventL(const TKeyEvent& aEvent, TEventCode aType );
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdetailedsubjectfield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdetailedsubjectfield.h Tue May 11 15:57:15 2010 +0300
@@ -48,7 +48,7 @@
* @return Pointer to created object,
*/
static CESMRViewerDetailedSubjectField* NewL( );
-
+
/**
* C++ Destructor.
*/
@@ -62,19 +62,21 @@
void SetTitlePaneObserver( MESMRTitlePaneObserver* aObserver );
-public: // From CESMRField
+protected: // From CESMRField
TSize MinimumSize();
void InternalizeL( MESMRCalEntry& aEntry );
void InitializeL();
void ListObserverSet();
TBool ExecuteGenericCommandL( TInt aCommand );
void SetOutlineFocusL( TBool aFocus );
- void GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower);
+ void GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower);
void HandleLongtapEventL( const TPoint& aPosition );
void LockL();
-
+ TBool SupportsLongTapFunctionalityL(
+ const TPointerEvent &aPointerEvent );
+
public: // From CCoeControl
- TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent,
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent,
TEventCode aType );
TInt CountComponentControls() const;
CCoeControl* ComponentControl( TInt aInd ) const;
@@ -86,7 +88,7 @@
CEikEdwin* aEdwin,
TEdwinSizeEvent aType,
TSize aSize );
-
+
protected: // From CESMRRichTextViewer
TBool HandleRichTextLinkSelection( const CESMRRichTextLink* aLink );
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerlocationfield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerlocationfield.h Tue May 11 15:57:15 2010 +0300
@@ -54,7 +54,7 @@
*/
~CESMRViewerLocationField( );
- public:// From CESMRField
+ protected:// From CESMRField
void InternalizeL( MESMRCalEntry& aEntry );
TSize MinimumSize();
void InitializeL();
@@ -64,10 +64,13 @@
void HandleLongtapEventL( const TPoint& aPosition );
void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
void LockL();
+ TBool SupportsLongTapFunctionalityL(
+ const TPointerEvent &aPointerEvent );
+
protected:
TBool HandleSingletapEventL( const TPoint& aPosition );
- public: // From CCoeControl
+ protected: // From CCoeControl
TKeyResponse OfferKeyEventL(const TKeyEvent& aEvent, TEventCode aType );
TInt CountComponentControls() const;
CCoeControl* ComponentControl( TInt aInd ) const;
@@ -75,11 +78,11 @@
void SetContainerWindowL( const CCoeControl& aContainer );
void GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower);
- public: // From MEikEdwinSizeObserver
+ protected: // From MEikEdwinSizeObserver
TBool HandleEdwinSizeEventL( CEikEdwin* aEdwin, TEdwinSizeEvent aType,
TSize aSize );
- public: // From MCoeControlObserver
+ protected: // From MCoeControlObserver
void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
private: // Implementation
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmralarmonofffield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmralarmonofffield.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#ifndef CMRALARMONOFFFIELD_H
#define CMRALARMONOFFFIELD_H
-#include "CESMRfield.h"
+#include "cesmrfield.h"
#include "mmrabsolutealarmcontroller.h"
class CMRLabel;
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmropenattachmentcommand.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmropenattachmentcommand.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#define CMROPENATTACHMENTCOMMAND_H
#include <e32base.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include "cmrattachmentcommand.h"
// Forward declarations
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrremoveattachmentcommand.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrremoveattachmentcommand.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#define CMRREMOVEATTACHMENTCOMMAND_H
#include <e32base.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include "cmrattachmentcommand.h"
// Forward declarations
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrsaveandopenattachmentcommand.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrsaveandopenattachmentcommand.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#define CMRSAVEANDOPENATTACHMENTCOMMAND_H
#include <e32base.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include "cmrattachmentcommand.h"
// Forward declarations
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrviewerattachmentfield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrviewerattachmentfield.h Tue May 11 15:57:15 2010 +0300
@@ -40,7 +40,7 @@
/**
* CMRViewerAttachmentsField is entry viewer attachment field
*/
-NONSHARABLE_CLASS( CMRViewerAttachmentsField ):
+NONSHARABLE_CLASS( CMRViewerAttachmentsField ):
public CESMRField,
public MEikEdwinSizeObserver,
public MESMRRichTextObserver
@@ -70,20 +70,22 @@
TInt aResourceId,
CEikMenuPane* aMenuPane );
void LockL();
-
+ TBool SupportsLongTapFunctionalityL(
+ const TPointerEvent &aPointerEvent );
+
protected: // From CCoeControl
TInt CountComponentControls() const;
CCoeControl* ComponentControl( TInt aInd ) const;
void SizeChanged();
TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
void SetContainerWindowL( const CCoeControl& aControl );
-
+
protected: // From MEikEdwinSizeObserver
TBool HandleEdwinSizeEventL( CEikEdwin* aEdwin, TEdwinSizeEvent aType, TSize aDesirableEdwinSize);
-
-public: // From MESMRRichTextObserver
+
+protected: // From MESMRRichTextObserver
TBool HandleRichTextLinkSelection( const CESMRRichTextLink* aLink );
-
+
private: // Implementation
CMRViewerAttachmentsField();
void ConstructL();
@@ -98,7 +100,8 @@
void DynInitMenuPaneForCurrentAttachmentL(
CEikMenuPane* aMenuPane );
TBool IsAttachmentDownloadInProgress( const CCalAttachment& aAttachment );
-
+ TInt MaxTextLengthInPixelsL();
+
private: //data
// Own: Field icon
CMRImage* iFieldIcon;
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmralarmfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmralarmfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -35,7 +35,7 @@
//<cmail>
#include "esmrdef.h"
//</cmail>
-#include <aknutils.h>
+#include <AknUtils.h>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrcheckbox.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrcheckbox.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,7 +29,7 @@
#include "cesmrgenericfieldevent.h"
#include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <data_caging_path_literals.hrh>
// DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrdatefield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrdatefield.cpp Tue May 11 15:57:15 2010 +0300
@@ -26,7 +26,7 @@
#include "nmrcolormanager.h"
#include "nmrbitmapmanager.h"
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <eikmfne.h>
//<cmail>
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrdescriptionfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrdescriptionfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,10 +29,10 @@
//</cmail>
#include <calentry.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <esmrgui.rsg>
-#include <aknutils.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <eikmfne.h>
// DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrlocationfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrlocationfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : ESMR location field implementation
- * Version : %version: e002sa32#53 %
+ * Version : %version: e002sa32#53.1.1 %
*
*/
@@ -34,10 +34,10 @@
#include "mesmrlistobserver.h"
#include <calentry.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <esmrgui.rsg>
#include <data_caging_path_literals.hrh>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <eikmfne.h>
#include <aknbutton.h>
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriority.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriority.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#include "emailtrace.h"
#include "cesmrpriority.h"
#include <barsread.h>
-#include <stringloader.h>
+#include <StringLoader.h>
// ---------------------------------------------------------------------------
// CESMRPriority::CESMRPriority
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriorityfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriorityfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -27,12 +27,12 @@
#include <calentry.h>
#include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <barsread.h>
#include <eiklabel.h>
#include <avkon.hrh>
-#include <aknsconstants.h>
-#include <aknutils.h>
+#include <AknsConstants.h>
+#include <AknUtils.h>
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrrepeatuntil.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrrepeatuntil.cpp Tue May 11 15:57:15 2010 +0300
@@ -26,9 +26,9 @@
#include "nmrbitmapmanager.h"
#include <eikmfne.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <esmrgui.rsg>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsingletimefield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsingletimefield.cpp Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
#include "nmrcolormanager.h"
#include "nmrbitmapmanager.h"
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <eikmfne.h>
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsubjectfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsubjectfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -27,10 +27,10 @@
#include "mesmrlistobserver.h"
#include <calentry.h>
-#include <stringloader.h>
-#include <aknsconstants.h>
+#include <StringLoader.h>
+#include <AknsConstants.h>
#include <esmrgui.rsg>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <eikmfne.h>
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsyncfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsyncfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -23,10 +23,10 @@
#include "nmrlayoutmanager.h"
#include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <barsread.h>
#include <avkon.hrh>
-#include <aknutils.h>
+#include <AknUtils.h>
#include <calentry.h>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrtextitem.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrtextitem.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#include "cesmrtextitem.h"
#include <barsread.h>
-#include <stringloader.h>
+#include <StringLoader.h>
// ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrvieweralarmfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrvieweralarmfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -26,8 +26,8 @@
#include <caluser.h>
#include <calalarm.h>
#include <calentry.h>
-#include <stringloader.h>
-#include <aknlayout2scalabledef.h>
+#include <StringLoader.h>
+#include <AknLayout2ScalableDef.h>
#include <esmrgui.rsg>
// DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrvieweralarmtimefield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrvieweralarmtimefield.cpp Tue May 11 15:57:15 2010 +0300
@@ -82,7 +82,7 @@
iLabel->SetParent( this );
CESMRField::ConstructL( iLabel ); // ownership transfered
- iIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapAlarmClock ); //TODO: Is this correct icon
+ iIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapAlarmClock );
iIcon->SetParent( this );
}
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdescriptionfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdescriptionfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -85,7 +85,7 @@
NMRLayoutManager::GetLayoutText( Rect(), NMRLayoutManager::EMRTextLayoutMultiRowTextEditor );
iRichTextViewer->SetFontL( layoutText.Font() );
iRichTextViewer->ApplyLayoutChangesL();
-
+
if ( IsFocused() )
{
iRichTextViewer->FocusChanged( EDrawNow );
@@ -205,18 +205,22 @@
Rect(),
NMRLayoutManager::EMRTextLayoutTextEditor );
- // Failures are ignored.
- TRAP_IGNORE(
- // Try setting font
+ // Failures are ignored.
+ TRAP_IGNORE(
+ // Try setting font
iRichTextViewer->SetFontL( text.Font() );
// Try applying changes
iRichTextViewer->ApplyLayoutChangesL();
);
+ iRichTextViewer->SetRect(
+ TRect( viewerRect.iTl,
+ TSize( viewerRect.Width(), iSize.iHeight ) ) );
+
if ( iRichTextViewer->Size().iWidth != richTextViewerWidth )
{
- // Most of this case is screen orientation, in this case we need to
- // Record the index of focusing link, after updating link array, then
+ // Most of this case is screen orientation, in this case we need to
+ // Record the index of focusing link, after updating link array, then
// reset the focusing to original one.
TInt focusingIndex = iRichTextViewer->GetFocusLink();
if ( KErrNotFound != focusingIndex )
@@ -225,7 +229,7 @@
//wake up current contact menu selection by calling this
iRichTextViewer->FocusChanged(ENoDrawNow);
}
- }
+ }
}
// ---------------------------------------------------------------------------
@@ -402,14 +406,14 @@
const TPoint& aPosition )
{
FUNC_LOG;
-
+
if ( iRichTextViewer->Rect().Contains( aPosition ) )
{
if( iRichTextViewer->LinkSelectedL() )
{
- HandleTactileFeedbackL();
+ HandleTactileFeedbackL();
}
-
+
}
}
@@ -580,5 +584,26 @@
return *iUrlParser;
}
+// ---------------------------------------------------------------------------
+// CESMRViewerDescriptionField::SupportsLongTapFunctionalityL
+// ---------------------------------------------------------------------------
+//
+TBool CESMRViewerDescriptionField::SupportsLongTapFunctionalityL(
+ const TPointerEvent &aPointerEvent )
+ {
+ FUNC_LOG;
+ TBool ret( EFalse );
+
+ if ( iRichTextViewer->Rect().Contains( aPointerEvent.iPosition ) )
+ {
+ if( iRichTextViewer->PointerEventOccuresOnALinkL( aPointerEvent ) )
+ {
+ ret = ETrue;
+ }
+ }
+
+ return ret;
+ }
+
//EOF
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdetailedsubjectfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdetailedsubjectfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -117,7 +117,7 @@
FUNC_LOG;
iFieldIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapOccasion );
iFieldIcon->SetParent( this );
-
+
iRichTextViewer = CESMRRichTextViewer::NewL( this );
CESMRField::ConstructL( iRichTextViewer ); // ownership transferred
iRichTextViewer->SetEdwinSizeObserver( this );
@@ -143,17 +143,17 @@
TSize CESMRViewerDetailedSubjectField::MinimumSize()
{
TRect parentRect( Parent()->Rect() );
-
- TRect fieldRect =
+
+ TRect fieldRect =
NMRLayoutManager::GetFieldLayoutRect( parentRect, 1 ).Rect();
- TRect viewerRect( NMRLayoutManager::GetLayoutText(
- fieldRect,
+ TRect viewerRect( NMRLayoutManager::GetLayoutText(
+ fieldRect,
NMRLayoutManager::EMRTextLayoutTextEditor ).TextRect() );
-
+
// Adjust field size so that there's room for expandable editor.
fieldRect.Resize( 0, iSize.iHeight - viewerRect.Height() );
-
+
return fieldRect.Size();
}
@@ -166,13 +166,13 @@
{
FUNC_LOG;
// Setting Font for the rich text viewer
- TAknLayoutText text = NMRLayoutManager::GetLayoutText(
- Rect(),
+ TAknLayoutText text = NMRLayoutManager::GetLayoutText(
+ Rect(),
NMRLayoutManager::EMRTextLayoutTextEditor );
-
+
iRichTextViewer->SetFontL( text.Font() );
iRichTextViewer->ApplyLayoutChangesL();
-
+
// This is called so theme changes will apply when changing theme "on the fly"
if ( IsFocused() )
{
@@ -193,24 +193,24 @@
aEntry.Type() );
CCalEntry& entry = aEntry.Entry();
-
+
if( !IsLocked() )
{
if( entry.PriorityL() == EFSCalenMRPriorityHigh )
{
- iPriorityIcon = CMRImage::NewL(
+ iPriorityIcon = CMRImage::NewL(
NMRBitmapManager::EMRBitmapPriorityHigh, ETrue );
iPriorityIcon->SetParent( this );
}
if( entry.PriorityL() == EFSCalenMRPriorityLow )
{
- iPriorityIcon = CMRImage::NewL(
+ iPriorityIcon = CMRImage::NewL(
NMRBitmapManager::EMRBitmapPriorityLow, ETrue );
iPriorityIcon->SetParent( this );
}
}
-
-
+
+
if ( MESMRCalEntry::EESMRCalEntryMeetingRequest == entryType )
{
MESMRMeetingRequestEntry* mrEntry =
@@ -261,14 +261,14 @@
// if the entry isn't anniversary let's change the icon.
if ( CCalEntry::EAnniv != aEntry.Entry().EntryTypeL() )
- {
+ {
delete iFieldIcon;
iFieldIcon = NULL;
iFieldIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapSubject );
iFieldIcon->SetParent( this );
- DrawDeferred();
+ DrawDeferred();
}
iDisableRedraw = ETrue;
}
@@ -290,22 +290,22 @@
// ---------------------------------------------------------------------------
//
TBool CESMRViewerDetailedSubjectField::HandleEdwinSizeEventL(
- CEikEdwin* aEdwin,
- TEdwinSizeEvent /*aType*/,
+ CEikEdwin* aEdwin,
+ TEdwinSizeEvent /*aType*/,
TSize aSize )
{
FUNC_LOG;
TBool reDraw( EFalse );
-
+
// Let's save the required size for the iRichTextViewer
iSize = aSize;
-
+
if ( iObserver && aEdwin == iRichTextViewer )
{
iObserver->ControlSizeChanged( this );
reDraw = ETrue;
}
-
+
return reDraw;
}
@@ -337,12 +337,12 @@
iRichTextViewer->LinkSelectedL();
isUsed = ETrue;
}
- else if ( aCommand == EAknCmdOpen )
- {
+ else if ( aCommand == EAknCmdOpen )
+ {
if ( IsLocked() )
{
HandleTactileFeedbackL();
-
+
CESMRGlobalNote::ExecuteL(
CESMRGlobalNote::EESMRUnableToEdit );
isUsed = ETrue;
@@ -360,12 +360,12 @@
FUNC_LOG;
CESMRField::SetOutlineFocusL ( aFocus );
iRichTextViewer->SetFocus( aFocus );
-
+
if( aFocus )
{
SetMiddleSoftkeyL();
}
-
+
else
{
//need to tell action menu that focus has changed
@@ -382,7 +382,7 @@
TInt& aLower )
{
FUNC_LOG;
-
+
aLower = iRichTextViewer->CurrentLineNumber() * iRichTextViewer->RowHeight();
aUpper = aLower - iRichTextViewer->RowHeight();
}
@@ -395,7 +395,7 @@
const TPoint& aPosition )
{
FUNC_LOG;
-
+
if ( iRichTextViewer->Rect().Contains( aPosition ) )
{
iRichTextViewer->LinkSelectedL();
@@ -413,9 +413,9 @@
{
return;
}
-
+
CESMRField::LockL();
-
+
delete iPriorityIcon;
iPriorityIcon = NULL;
iPriorityIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapLockField, ETrue );
@@ -445,7 +445,7 @@
}
}
-
+
// ---------------------------------------------------------------------------
// CESMRViewerDetailedSubjectField::HandleRichTextLinkSelection
// ---------------------------------------------------------------------------
@@ -456,7 +456,7 @@
TBool result = EFalse;
// No implementation yet: waiting for UI spec.
-
+
return result;
}
@@ -476,12 +476,12 @@
{
++count;
}
-
+
if ( iPriorityIcon )
{
++count;
}
-
+
return count;
}
@@ -489,7 +489,7 @@
// CESMRViewerDetailedSubjectField::ComponentControl
// ---------------------------------------------------------------------------
//
-CCoeControl* CESMRViewerDetailedSubjectField::ComponentControl(
+CCoeControl* CESMRViewerDetailedSubjectField::ComponentControl(
TInt aIndex ) const
{
switch ( aIndex )
@@ -500,7 +500,7 @@
return iRichTextViewer;
case 2:
return iPriorityIcon;
-
+
default:
return NULL;
}
@@ -516,24 +516,24 @@
TInt richTextViewerWidth = iRichTextViewer->Size().iWidth;
TRect rect( Rect() );
- TAknLayoutRect rowLayoutRect(
+ TAknLayoutRect rowLayoutRect(
NMRLayoutManager::GetFieldRowLayoutRect( rect, 1 ) );
TRect rowRect( rowLayoutRect.Rect() );
-
+
// Layouting field icon
if( iFieldIcon )
{
- TAknWindowComponentLayout iconLayout(
- NMRLayoutManager::GetWindowComponentLayout(
+ TAknWindowComponentLayout iconLayout(
+ NMRLayoutManager::GetWindowComponentLayout(
NMRLayoutManager::EMRLayoutSingleRowAColumnGraphic ) );
AknLayoutUtils::LayoutControl( iFieldIcon, rowRect, iconLayout );
}
-
+
// Layouting priority icon
if( iPriorityIcon )
{
- TAknWindowComponentLayout iconLayout(
- NMRLayoutManager::GetWindowComponentLayout(
+ TAknWindowComponentLayout iconLayout(
+ NMRLayoutManager::GetWindowComponentLayout(
NMRLayoutManager::EMRLayoutSingleRowDColumnGraphic ) );
AknLayoutUtils::LayoutImage( iPriorityIcon, rowRect, iconLayout );
}
@@ -542,32 +542,32 @@
if( iPriorityIcon )
{
- viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
+ viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
NMRLayoutManager::EMRTextLayoutSingleRowEditorText );
}
else
{
- viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
+ viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
NMRLayoutManager::EMRTextLayoutTextEditor );
}
-
+
// Layouting viewer field
TRect viewerRect( viewerLayoutText.TextRect() );
// Resize height according to actual height required by edwin.
viewerRect.Resize( 0, iSize.iHeight - viewerRect.Height() );
- iRichTextViewer->SetRect( viewerRect );
-
+ iRichTextViewer->SetRect( viewerRect );
+
// Layouting focus
- TRect bgRect( viewerRect );
-
+ TRect bgRect( viewerRect );
+
// Move focus rect so that it's relative to field's position.
bgRect.Move( -Position() );
SetFocusRect( bgRect );
-
- // Failures are ignored.
- TRAP_IGNORE(
- // Try setting font
+
+ // Failures are ignored.
+ TRAP_IGNORE(
+ // Try setting font
iRichTextViewer->SetFontL( viewerLayoutText.Font() );
// Try applying changes
iRichTextViewer->ApplyLayoutChangesL();
@@ -575,8 +575,8 @@
if ( iRichTextViewer->Size().iWidth != richTextViewerWidth )
{
- // Most of this case is screen orientation, in this case we need to
- // Record the index of focusing link, after updating link array, then
+ // Most of this case is screen orientation, in this case we need to
+ // Record the index of focusing link, after updating link array, then
// reset the focusing to original one.
TInt focusingIndex = iRichTextViewer->GetFocusLink();
if ( KErrNotFound != focusingIndex )
@@ -592,12 +592,33 @@
// CESMRViewerDetailedSubjectField::SetContainerWindowL
// ---------------------------------------------------------------------------
//
-void CESMRViewerDetailedSubjectField::SetContainerWindowL(
+void CESMRViewerDetailedSubjectField::SetContainerWindowL(
const CCoeControl& aContainer )
{
CCoeControl::SetContainerWindowL( aContainer );
- iRichTextViewer->SetContainerWindowL( aContainer );
+ iRichTextViewer->SetContainerWindowL( aContainer );
iRichTextViewer->SetParent( this );
}
+// ---------------------------------------------------------------------------
+// CESMRViewerDetailedSubjectField::SupportsLongTapFunctionalityL
+// ---------------------------------------------------------------------------
+//
+TBool CESMRViewerDetailedSubjectField::SupportsLongTapFunctionalityL(
+ const TPointerEvent &aPointerEvent )
+ {
+ FUNC_LOG;
+ TBool ret( EFalse );
+
+ if ( iRichTextViewer->Rect().Contains( aPointerEvent.iPosition ) )
+ {
+ if( iRichTextViewer->PointerEventOccuresOnALinkL( aPointerEvent ) )
+ {
+ ret = ETrue;
+ }
+ }
+
+ return ret;
+ }
+
//EOF
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerlocationfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerlocationfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -235,19 +235,6 @@
break;
}
- case EAknCmdOpen:
- {
- // Open command is handled only when field is locked
- if ( IsLocked() )
- {
- HandleTactileFeedbackL();
-
- CESMRGlobalNote::ExecuteL(
- CESMRGlobalNote::EESMRUnableToEdit );
- isUsed = ETrue;
- }
- break;
- }
default:
{
break;
@@ -406,8 +393,8 @@
if ( iRichTextViewer->Size().iWidth != richTextViewerWidth )
{
- // Most of this case is screen orientation, in this case we need to
- // Record the index of focusing link, after updating link array, then
+ // Most of this case is screen orientation, in this case we need to
+ // Record the index of focusing link, after updating link array, then
// reset the focusing to original one.
TInt focusingIndex = iRichTextViewer->GetFocusLink();
if ( KErrNotFound != focusingIndex )
@@ -416,7 +403,7 @@
//wake up current contact menu selection by calling this
iRichTextViewer->FocusChanged(ENoDrawNow);
}
- }
+ }
}
// ---------------------------------------------------------------------------
@@ -565,32 +552,41 @@
{
TBool ret( EFalse );
- if( iLocked )
+ // Button events are handled by HandleControlEvent.
+ // Tap on link is handled by rich text viewer.
+ if ( !iFieldButton->Rect().Contains( aPosition )
+ && !iRichTextViewer->GetSelectedLink() )
{
HandleTactileFeedbackL();
- CESMRGlobalNote::ExecuteL(
- CESMRGlobalNote::EESMRUnableToEdit );
+ NotifyEventL( EAknSoftkeyContextOptions );
- // Field locked, let's consume the event
+ // Event is always consumed, if we come inside this if-clause
ret = ETrue;
}
- else
- {
- // Button events are handled by HandleControlEvent.
- // Tap on link is handled by rich text viewer.
- if ( !iFieldButton->Rect().Contains( aPosition )
- && !iRichTextViewer->GetSelectedLink() )
- {
- NotifyEventL( EAknSoftkeyContextOptions );
-
- ret = ETrue;
-
- HandleTactileFeedbackL();
- }
- }
return ret;
}
+// ---------------------------------------------------------------------------
+// CESMRViewerLocationField::SupportsLongTapFunctionalityL
+// ---------------------------------------------------------------------------
+//
+TBool CESMRViewerLocationField::SupportsLongTapFunctionalityL(
+ const TPointerEvent &aPointerEvent )
+ {
+ FUNC_LOG;
+ TBool ret( EFalse );
+
+ if ( iRichTextViewer->Rect().Contains( aPointerEvent.iPosition ) )
+ {
+ if( iRichTextViewer->PointerEventOccuresOnALinkL( aPointerEvent ) )
+ {
+ ret = ETrue;
+ }
+ }
+
+ return ret;
+ }
+
//EOF
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerpriorityfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerpriorityfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
#include <calentry.h>
#include <eikenv.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <esmrgui.rsg>
// DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerrecurrencedatefield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerrecurrencedatefield.cpp Tue May 11 15:57:15 2010 +0300
@@ -28,8 +28,8 @@
#include <eikenv.h>
#include <avkon.rsg>
#include <avkon.hrh>
-#include <stringloader.h>
-#include <aknutils.h>
+#include <StringLoader.h>
+#include <AknUtils.h>
#include <esmrgui.rsg>
#include <caltime.h>
// DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerrecurrencefield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerrecurrencefield.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,8 +29,8 @@
#include <calentry.h>
#include <eikenv.h>
#include <eikedwin.h>
-#include <stringloader.h>
-#include <aknsconstants.h>
+#include <StringLoader.h>
+#include <AknsConstants.h>
#include <esmrgui.rsg>
// DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerstartdatefield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerstartdatefield.cpp Tue May 11 15:57:15 2010 +0300
@@ -34,10 +34,10 @@
#include <calentry.h>
#include <eikenv.h>
#include <eikedwin.h>
-#include <stringloader.h>
-#include <aknsconstants.h>
-#include <aknutils.h>
-#include <aknlayout2scalabledef.h>
+#include <StringLoader.h>
+#include <AknsConstants.h>
+#include <AknUtils.h>
+#include <AknLayout2ScalableDef.h>
// ======== LOCAL FUNCTIONS ========
namespace // codescanner::namespace
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerstopdatefield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerstopdatefield.cpp Tue May 11 15:57:15 2010 +0300
@@ -26,7 +26,7 @@
#include "cesmrglobalnote.h"
#include <esmrgui.rsg>
-#include <aknutils.h>
+#include <AknUtils.h>
#include <eiklabel.h>
#include <caluser.h>
#include <calalarm.h>
@@ -34,8 +34,8 @@
#include <calentry.h>
#include <eikenv.h>
#include <eikedwin.h>
-#include <stringloader.h>
-#include <aknsconstants.h>
+#include <StringLoader.h>
+#include <AknsConstants.h>
#include "esmrfieldbuilderdef.h"
// ======== LOCAL FUNCTIONS ========
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewersyncfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewersyncfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -24,8 +24,8 @@
#include "cesmrglobalnote.h"
#include <calentry.h>
-#include <stringloader.h>
-#include <aknlayout2scalabledef.h>
+#include <StringLoader.h>
+#include <AknLayout2ScalableDef.h>
#include <esmrgui.rsg>
// DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewertimefield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewertimefield.cpp Tue May 11 15:57:15 2010 +0300
@@ -31,10 +31,10 @@
#include <calentry.h>
#include <eikenv.h>
#include <eikedwin.h>
-#include <stringloader.h>
-#include <aknsconstants.h>
-#include <aknutils.h>
-#include <aknlayout2scalabledef.h>
+#include <StringLoader.h>
+#include <AknsConstants.h>
+#include <AknUtils.h>
+#include <AknLayout2ScalableDef.h>
#include <esmrgui.rsg>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmralarmonofffield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmralarmonofffield.cpp Tue May 11 15:57:15 2010 +0300
@@ -24,10 +24,10 @@
#include "mesmrfieldvalidator.h"
#include "nmrlayoutmanager.h"
-#include <stringloader.h>
+#include <StringLoader.h>
#include <avkon.hrh>
#include <esmrgui.rsg>
-#include <aknutils.h>
+#include <AknUtils.h>
// ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentcommandhandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentcommandhandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -36,8 +36,8 @@
#include <calattachment.h>
#include <f32file.h>
#include <apgcli.h>
-#include <documenthandler.h>
-#include <stringloader.h>
+#include <DocumentHandler.h>
+#include <StringLoader.h>
#include <AknGlobalNote.h>
// DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentsfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentsfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -27,14 +27,14 @@
#include "cesmrrichtextlink.h"
#include "cmrattachmentcommandhandler.h"
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <calentry.h>
#include <calattachment.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <esmrgui.rsg>
#include <gulicon.h>
#include <ct/rcpointerarray.h>
-#include <aknbiditextutils.h>
+#include <AknBidiTextUtils.h>
// DEBUG
#include "emailtrace.h"
@@ -44,7 +44,6 @@
namespace { // codescanner::namespace
//CONSTANTS
-// TODO: Read default text from resource
_LIT( KAddAttachment, "Add attachment" );
_LIT( KNewLine, "\f" );
@@ -141,7 +140,6 @@
iRichTextViewer->SetLinkObserver (this );
iRichTextViewer->SetParent( this );
- // TODO: read from resource
iTitle->SetTextL( KAddAttachment );
// Draw bg instead of using skin bg
@@ -479,7 +477,7 @@
TBool CMRAttachmentsField::ExecuteGenericCommandL( TInt aCommand )
{
FUNC_LOG;
- // TODO: Changes from other fields have to be implemented here
+
TBool handled( EFalse );
// From cesmrattachmentfield
@@ -620,7 +618,6 @@
delete attachmentSize;
attachmentSize = NULL;
- // TODO: correct icon zise to correct one. Ask from UI specifier.
TSize iconSize( 20, 20);
maxLineWidth -= iconSize.iWidth;
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrmulticalenfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrmulticalenfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -26,12 +26,12 @@
#include "cesmrglobalnote.h"
#include <calinstance.h>
#include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <barsread.h>
#include <avkon.hrh>
-#include <aknutils.h>
+#include <AknUtils.h>
#include <calentry.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
// DEBUG
#include "emailtrace.h"
#include "cesmrcaldbmgr.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmropenattachmentcommand.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmropenattachmentcommand.cpp Tue May 11 15:57:15 2010 +0300
@@ -20,10 +20,10 @@
#include <calattachment.h>
#include <f32file.h>
#include <esmrgui.rsg>
-#include <npdapi.h>
+#include <NpdApi.h>
#include <aknnotewrappers.h>
-#include <stringloader.h>
-#include <documenthandler.h>
+#include <StringLoader.h>
+#include <DocumentHandler.h>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrsaveandopenattachmentcommand.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrsaveandopenattachmentcommand.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,12 +19,12 @@
#include <calentry.h>
#include <calattachment.h>
#include <f32file.h>
-#include <documenthandler.h>
+#include <DocumentHandler.h>
#include <coemain.h>
#include <esmrgui.rsg>
-#include <npdapi.h>
+#include <NpdApi.h>
#include <aknnotewrappers.h>
-#include <stringloader.h>
+#include <StringLoader.h>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrsaveattachmentcommand.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrsaveattachmentcommand.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,12 +19,12 @@
#include <calentry.h>
#include <calattachment.h>
#include <f32file.h>
-#include <documenthandler.h>
+#include <DocumentHandler.h>
#include <coemain.h>
#include <esmrgui.rsg>
-#include <npdapi.h>
+#include <NpdApi.h>
#include <aknnotewrappers.h>
-#include <stringloader.h>
+#include <StringLoader.h>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrtimecontainer.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrtimecontainer.cpp Tue May 11 15:57:15 2010 +0300
@@ -26,10 +26,10 @@
#include <layoutmetadata.cdl.h>
#include <eikmfne.h>
#include <avkon.hrh>
-#include <aknutils.h>
-#include <aknsframebackgroundcontrolcontext.h>
-#include <aknsdrawutils.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknUtils.h>
+#include <AknsFrameBackgroundControlContext.h>
+#include <AknsDrawUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrunifiededitorfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrunifiededitorfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -25,12 +25,12 @@
#include "cesmrglobalnote.h"
#include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <barsread.h>
#include <avkon.hrh>
-#include <aknutils.h>
+#include <AknUtils.h>
#include <calentry.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrviewerattachmentfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrviewerattachmentfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -30,14 +30,14 @@
#include "mcalremoteattachmentoperation.h"
#include "cesmrglobalnote.h"
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <calentry.h>
#include <calattachment.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <esmrgui.rsg>
#include <gulicon.h>
#include <ct/rcpointerarray.h>
-#include <aknbiditextutils.h>
+#include <AknBidiTextUtils.h>
#include <badesca.h>
// DEBUG
@@ -263,7 +263,7 @@
{
++count;
}
-
+
if ( iLockIcon )
{
++count;
@@ -302,7 +302,7 @@
FUNC_LOG;
TRect rect( Rect() );
- TAknLayoutRect rowLayoutRect(
+ TAknLayoutRect rowLayoutRect(
NMRLayoutManager::GetFieldRowLayoutRect( rect, 1 ) );
TRect rowRect( rowLayoutRect.Rect() );
@@ -318,22 +318,22 @@
// Layouting lock icon
if( iLockIcon )
{
- TAknWindowComponentLayout iconLayout(
- NMRLayoutManager::GetWindowComponentLayout(
+ TAknWindowComponentLayout iconLayout(
+ NMRLayoutManager::GetWindowComponentLayout(
NMRLayoutManager::EMRLayoutSingleRowDColumnGraphic ) );
AknLayoutUtils::LayoutImage( iLockIcon, rowRect, iconLayout );
}
-
+
// Layouting viewer rect
TAknLayoutText viewerLayoutText;
if( iLockIcon )
{
- viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
+ viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
NMRLayoutManager::EMRTextLayoutSingleRowEditorText );
}
else
{
- viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
+ viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
NMRLayoutManager::EMRTextLayoutTextEditor );
}
@@ -342,7 +342,7 @@
// Resize height according to actual height required by edwin.
viewerRect.Resize( 0, iSize.iHeight - viewerRect.Height() );
iRichTextViewer->SetRect( viewerRect );
-
+
// Layouting focus
TRect bgRect( 0, 0, 0, 0 );
if( iAttachmentCount > 1 )
@@ -364,7 +364,7 @@
// Move focus rect so that it's relative to field's position.
bgRect.Move( -Position() );
SetFocusRect( bgRect );
-
+
// Failures are ignored.
TRAP_IGNORE(
// Set font
@@ -458,7 +458,7 @@
TBool CMRViewerAttachmentsField::ExecuteGenericCommandL( TInt aCommand )
{
FUNC_LOG;
- // TODO: Changes from other fields have to be implemented here
+
TBool handled( EFalse );
//handle locked field first
@@ -468,7 +468,7 @@
aCommand == EAknCmdOpen )
{
HandleTactileFeedbackL();
-
+
CESMRGlobalNote::ExecuteL(
CESMRGlobalNote::EESMRUnableToEdit );
return ETrue;
@@ -489,7 +489,7 @@
iAttachmentCommandHandler->HandleAttachmentCommandL(
aCommand,
*currentLink );
-
+
HandleTactileFeedbackL();
}
else
@@ -497,7 +497,7 @@
iAttachmentCommandHandler->HandleRemoteAttachmentCommandL(
aCommand,
*currentLink );
-
+
HandleTactileFeedbackL();
}
@@ -538,7 +538,7 @@
{
TRAP_IGNORE( NotifyEventL( EMRLaunchAttachmentContextMenu ));
ret = ETrue;
-
+
TRAP_IGNORE( HandleTactileFeedbackL() );
}
@@ -576,56 +576,51 @@
attachmentLinks.ReserveL( iAttachmentCount );
for ( TInt i = 0; i < iAttachmentCount; ++i )
{
- CCalAttachment* att = iEntry->Entry().AttachmentL( i ); // Ownership not gained
+ CCalAttachment* attachment = iEntry->Entry().AttachmentL( i ); // Ownership not gained
- // Reducing space required by file size information from
- // max line width, so that file name can be trimmed to correct
- // length
- TInt maxLineWidth = layoutText.TextRect().Width();
- const CFont* font = layoutText.Font();
+ const CFont* font = layoutText.Font();
+ TInt maxFileNameLengthInPixels( MaxTextLengthInPixelsL() );
- HBufC* attachmentSize = AttachmentNameAndSizeL( KNullDesC(), *att );
- TInt attachmentSizeLength = attachmentSize->Length();
- maxLineWidth -= font->TextWidthInPixels( *attachmentSize );
- delete attachmentSize;
- attachmentSize = NULL;
+ // Size information needs to be reduced from max filename length
+ HBufC* attachmentSizeOnly(
+ AttachmentNameAndSizeL( KNullDesC(), *attachment ) );
+ TInt sizeInformationLengthInPixels(
+ font->TextWidthInPixels( *attachmentSizeOnly ) );
+ maxFileNameLengthInPixels -= sizeInformationLengthInPixels;
- // TODO: correct icon zise to correct one. Ask from UI specifier.
- TSize iconSize( 20, 20);
- maxLineWidth -= iconSize.iWidth;
-
- // Trimming file name to fit to one line
- TPtrC text = att->Label();
- HBufC* clippedTextHBufC = ClipTextLC( text, *font, maxLineWidth );
- TPtr clippedText = clippedTextHBufC->Des();
- clippedText.Trim();
+ // Trimming file name to fit to one line
+ TPtrC text = attachment->Label();
+ HBufC* clippedTextHBufC = ClipTextLC(
+ text, *font, maxFileNameLengthInPixels );
+ TPtr clippedText = clippedTextHBufC->Des();
+ clippedText.Trim();
if ( clippedText.Length() > 0 )
{
- // Creating rich text link
- CESMRRichTextLink* link = CESMRRichTextLink::NewL(
- buffer.Length(),
- clippedText.Length() + attachmentSizeLength,
- text,
- CESMRRichTextLink::ETypeAttachment,
- CESMRRichTextLink::ETriggerKeyRight );
- CleanupStack::PushL( link );
- attachmentLinks.AppendL( link );
- CleanupStack::Pop( link );
+ HBufC* buf = AttachmentNameAndSizeL( clippedText, *attachment );
+ CleanupStack::PushL( buf );
- HBufC* buf = AttachmentNameAndSizeL( clippedText, *att );
- CleanupStack::PushL( buf );
+ // Creating rich text link
+ CESMRRichTextLink* link = CESMRRichTextLink::NewL(
+ buffer.Length(),
+ buf->Length(),
+ text,
+ CESMRRichTextLink::ETypeAttachment,
+ CESMRRichTextLink::ETriggerKeyRight );
+ CleanupStack::PushL( link );
+ attachmentLinks.AppendL( link );
+ CleanupStack::Pop( link );
- // Append attachment name and size with line feed to buffer
- buffer.ReAllocL( buffer.Length() +
- clippedText.Length() +
- buf->Length() +
- KNewLine().Length() );
+ // Append attachment name and size with line feed to buffer
+ buffer.ReAllocL( buffer.Length() +
+ clippedText.Length() +
+ buf->Length() +
+ KNewLine().Length() );
- buffer.Append( buf->Des() );
- buffer.Append( KNewLine );
+ buffer.Append( buf->Des() );
+ buffer.Append( KNewLine );
- CleanupStack::PopAndDestroy( buf );
+ CleanupStack::PopAndDestroy( buf );
}
CleanupStack::PopAndDestroy( clippedTextHBufC );
@@ -744,7 +739,7 @@
attachmentStrings->AppendL( aDes );
stringholder = StringLoader::LoadLC(
- R_MEET_REQ_ATTACHMENT_FILE_LESS_THAN_KILOBYTE ,
+ R_MEET_REQ_ATTACHMENT_FILE_LESS_THAN_KILOBYTE ,
*attachmentStrings );
}
else
@@ -959,7 +954,7 @@
FUNC_LOG;
TInt commandInProgress(
iAttachmentCommandHandler->CurrentCommandInProgress() );
-
+
// Get selected attachment
CCalAttachment* selectedAttachment = NULL;
@@ -980,21 +975,21 @@
ASSERT( selectedAttachment );
-
+
/*
* Case 1: Download in progress
*/
if( commandInProgress )
{
- // A) If selected attachment is remote attachment and download is in progress
+ // A) If selected attachment is remote attachment and download is in progress
// or attachment is queued for downloading
- if( selectedAttachment->Type() == CCalAttachment::EUri &&
+ if( selectedAttachment->Type() == CCalAttachment::EUri &&
EESMRViewerSaveAllAttachments == commandInProgress )
{
aMenuPane->SetItemDimmed(
EESMRViewerOpenAttachment,
ETrue );
-
+
aMenuPane->SetItemDimmed(
EESMRViewerSaveAttachment,
ETrue );
@@ -1003,7 +998,7 @@
EESMRViewerSaveAllAttachments,
ETrue );
}
-
+
// B) If selected attachment is local attachment
else if( selectedAttachment->Type() == CCalAttachment::EFile )
{
@@ -1011,7 +1006,7 @@
aMenuPane->SetItemDimmed(
EESMRViewerCancelAttachmentDownload,
ETrue );
-
+
// If attachment count is one, hide 'Save All' also
if ( iAttachmentCount == 1 )
{
@@ -1020,11 +1015,11 @@
ETrue );
}
}
-
+
// C) If selected attachment is Uri, and some other command is in progress
// than save all
- else if( selectedAttachment->Type() == CCalAttachment::EUri &&
- commandInProgress != EESMRViewerSaveAllAttachments )
+ else if( selectedAttachment->Type() == CCalAttachment::EUri &&
+ commandInProgress != EESMRViewerSaveAllAttachments )
{
// If this attachment is the one being downloaded
if( IsAttachmentDownloadInProgress( *selectedAttachment ) )
@@ -1032,25 +1027,25 @@
aMenuPane->SetItemDimmed(
EESMRViewerOpenAttachment,
ETrue );
-
+
aMenuPane->SetItemDimmed(
EESMRViewerSaveAttachment,
ETrue );
-
+
aMenuPane->SetItemDimmed(
EESMRViewerSaveAllAttachments,
ETrue );
}
-
-
+
+
// if this attacment is not the one being downloaded
else
- {
+ {
// Always hide cancel attachment download item
aMenuPane->SetItemDimmed(
EESMRViewerCancelAttachmentDownload,
ETrue );
-
+
// If attachment count is one, hide 'Save All' also
if ( iAttachmentCount == 1 )
{
@@ -1061,7 +1056,7 @@
}
}
}
-
+
/*
* Case 2: No download in progress
*/
@@ -1071,7 +1066,7 @@
aMenuPane->SetItemDimmed(
EESMRViewerCancelAttachmentDownload,
ETrue );
-
+
// If attachment count is one, hide 'Save All' also
if ( iAttachmentCount == 1 )
{
@@ -1086,16 +1081,16 @@
// CMRViewerAttachmentsField::IsAttachmentDownloadInProgress
// ---------------------------------------------------------------------------
//
-TBool CMRViewerAttachmentsField::IsAttachmentDownloadInProgress(
+TBool CMRViewerAttachmentsField::IsAttachmentDownloadInProgress(
const CCalAttachment& aAttachment )
{
TBool ret( EFalse );
-
+
RPointerArray<MCalRemoteAttachmentOperation>& remoteOperations(
iAttachmentCommandHandler->RemoteOperations() );
TPtrC currentAttachmentName( aAttachment.Label() );
-
+
TInt downloadOperationCount( remoteOperations.Count() );
if ( downloadOperationCount )
{
@@ -1106,7 +1101,7 @@
remoteOperations[i]->AttachmentInformation();
TPtrC label( attachInfo.AttachmentLabel() );
-
+
if ( label.Compare( currentAttachmentName ) == 0 )
{
ret = ETrue;
@@ -1117,4 +1112,53 @@
return ret;
}
+// ---------------------------------------------------------------------------
+// CMRViewerAttachmentsField::SupportsLongTapFunctionalityL
+// ---------------------------------------------------------------------------
+//
+TBool CMRViewerAttachmentsField::SupportsLongTapFunctionalityL(
+ const TPointerEvent &aPointerEvent )
+ {
+ FUNC_LOG;
+ TBool ret( EFalse );
+
+ if ( iRichTextViewer->Rect().Contains( aPointerEvent.iPosition ) )
+ {
+ if( iRichTextViewer->PointerEventOccuresOnALinkL( aPointerEvent ) )
+ {
+ ret = ETrue;
+ }
+ }
+
+ return ret;
+ }
+
+// ---------------------------------------------------------------------------
+// CMRViewerAttachmentsField::MaxTextLengthInPixelsL
+// ---------------------------------------------------------------------------
+//
+TInt CMRViewerAttachmentsField::MaxTextLengthInPixelsL()
+ {
+ FUNC_LOG;
+ /*
+ * RichTextViewer length cannot be used here directly, since
+ * this value is not always available. Value needs to be calculated.
+ */
+ TRect tempFieldRect( TPoint( 0, 0 ), MinimumSize() );
+
+ // Rich Text viewer width is the same as other common rich text components
+ // width
+ TAknLayoutRect rowLayoutRect(
+ NMRLayoutManager::GetFieldRowLayoutRect( tempFieldRect, 1 ) );
+ TRect rowRect( rowLayoutRect.Rect() );
+
+ TAknLayoutText layoutText( NMRLayoutManager::GetLayoutText(
+ rowRect,
+ NMRLayoutManager::EMRTextLayoutTextEditor ) );
+
+ TRect tempRichTextViewerRect( layoutText.TextRect() );
+
+ return tempRichTextViewerRect.Width();
+ }
+
//EOF
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsitem.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsitem.h Tue May 11 15:57:15 2010 +0300
@@ -23,7 +23,7 @@
#include <e32base.h>
#include <cntdef.h>
-#include <cpcsdefs.h> // TPsMatchLocation
+#include <CPcsDefs.h> // TPsMatchLocation
// FORWARD DECLARATIONS
class MVPbkContactLink;
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclslistshandler.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclslistshandler.h Tue May 11 15:57:15 2010 +0300
@@ -22,8 +22,8 @@
#include <e32base.h>
#include <cntdef.h> // TContactItemId
#include <bamdesca.h> // MDesCArray
-#include <cpbkcontactitem.h>
-#include <cpcsdefs.h>
+#include <CPbkContactItem.h>
+#include <CPcsDefs.h>
#include "cesmrclsitem.h"
#include "resmrstatic.h"
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsmatchobserver.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsmatchobserver.h Tue May 11 15:57:15 2010 +0300
@@ -23,9 +23,9 @@
#include <e32base.h>
#include <cntdef.h>
-#include <mpsresultsobserver.h>
-#include <cpsrequesthandler.h>
-#include <cpcsdefs.h>
+#include <MPsResultsObserver.h>
+#include <CPsRequestHandler.h>
+#include <CPcsDefs.h>
// FORWARD DECLARATIONS
class CRepository;
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrncseditor.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrncseditor.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#define CESMRNCSEDITOR_H
#include <eikrted.h>
-#include <aknutils.h>
+#include <AknUtils.h>
/**
* CESMRNcsEditor is a specialised CEikRichTextEditor for
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrviewerattendeesfield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrviewerattendeesfield.h Tue May 11 15:57:15 2010 +0300
@@ -49,7 +49,7 @@
*/
~CESMRViewerAttendeesField( );
-public: // From CCoeControl
+protected: // From CCoeControl
TInt CountComponentControls( ) const;
CCoeControl* ComponentControl( TInt aInd ) const;
void SizeChanged( );
@@ -57,7 +57,7 @@
void SetContainerWindowL(const CCoeControl& aContainer);
TSize MinimumSize();
-public: // From CESMRField
+protected: // From CESMRField
void InitializeL();
void SetOutlineFocusL( TBool aFocus );
void InternalizeL( MESMRCalEntry& aEntry );
@@ -65,13 +65,12 @@
void GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower);
void ListObserverSet( );
TBool ExecuteGenericCommandL( TInt aCommand );
- void HandleLongtapEventL( const TPoint& aPosition );
-public: // From MEikEdwinSizeObserver
+protected: // From MEikEdwinSizeObserver
TBool HandleEdwinSizeEventL(CEikEdwin* aEdwin, TEdwinSizeEvent aType,
TSize aDesirableEdwinSize );
-public: // From MESMRRichTextObserver
+protected: // From MESMRRichTextObserver
TBool HandleRichTextLinkSelection(const CESMRRichTextLink* aLink );
private: // Implementation
@@ -87,14 +86,14 @@
CMRLabel* iTitle;
// Not own: Container for all the attendees
CESMRRichTextViewer* iRichTextViewer;
- // Size of the field when after field has expanded.
+ // Size of the field after field has been expanded.
TSize iExpandedSize;
// Size of the title
TSize iTitleSize;
// Inofrmation about attendee type
CCalAttendee::TCalRole iRole;
// Not owned. Attendee list.
- RPointerArray<CCalAttendee> iCalAttendees;
+ RPointerArray<CCalAttendee> iCalAttendees;
// Show all attendees.
TBool iShowAllAttendees;
};
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrviewerfromfield.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrviewerfromfield.h Tue May 11 15:57:15 2010 +0300
@@ -35,7 +35,7 @@
* Field for showing the "from" information. In other words this field shows
* that who sent/organized this meeting request.
*/
-NONSHARABLE_CLASS( CESMRViewerFromField ) : public CESMRField,
+NONSHARABLE_CLASS( CESMRViewerFromField ) : public CESMRField,
MEikEdwinSizeObserver
{
public:
@@ -45,39 +45,38 @@
* @return New viewer from field object
*/
static CESMRViewerFromField* NewL( );
-
+
/**
* C++ Destructor.
*/
~CESMRViewerFromField( );
-
- public: // From CESMRField
+
+ protected: // From CESMRField
void InternalizeL( MESMRCalEntry& aEntry );
void InitializeL();
TBool ExecuteGenericCommandL( TInt aCommand );
void SetOutlineFocusL( TBool aFocus );
- void HandleLongtapEventL( const TPoint& aPosition );
-
- public: // From CCoeControl
+
+ protected: // From CCoeControl
TKeyResponse OfferKeyEventL(
- const TKeyEvent& aEvent,
+ const TKeyEvent& aEvent,
TEventCode aType );
TInt CountComponentControls() const;
CCoeControl* ComponentControl( TInt aInd ) const;
void SizeChanged();
TSize MinimumSize();
void SetContainerWindowL(const CCoeControl& aContainer);
-
- public: // From MEikEdwinSizeObserver
- TBool HandleEdwinSizeEventL(
- CEikEdwin* aEdwin,
+
+ protected: // From MEikEdwinSizeObserver
+ TBool HandleEdwinSizeEventL(
+ CEikEdwin* aEdwin,
TEdwinSizeEvent aType,
TSize aSize );
-
+
private: // Implementation
CESMRViewerFromField( );
void ConstructL( );
-
+
private: // data
// Not own: Actual text of this field, not owned
CESMRRichTextViewer* iRichTextViewer;
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/resmrpluginextensionstatic.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/resmrpluginextensionstatic.h Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
#include <e32base.h>
//<cmail>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
//</cmail>
class TESMRPluginExtensionData;
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,9 +29,9 @@
#include "cesmrresponsefield.h"
#include "cesmrviewerfromfield.h"
#include "cesmrfieldbuilderinterface.h"
-#include "CFSMailCommon.h"
+#include "cfsmailcommon.h"
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrattendeefield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrattendeefield.cpp Tue May 11 15:57:15 2010 +0300
@@ -17,7 +17,7 @@
#include "cesmrattendeefield.h"
//<cmail>
#include "esmrcommands.h"
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
//</cmail>
#include "cesmrncspopuplistbox.h"
#include "cesmrncsemailaddressobject.h"
@@ -31,9 +31,9 @@
#include "cmrimage.h"
#include "cmrbutton.h"
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <calentry.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <esmrgui.rsg>
#include <aknbutton.h>
#include <gulicon.h>
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclsitem.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclsitem.cpp Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
#include "cesmrclsitem.h"// CESMRClsItem
#include "esmrfieldbuilderdef.h"
-#include <mvpbkcontactlink.h>
+#include <MVPbkContactLink.h>
// ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclslistshandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclslistshandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -20,20 +20,20 @@
#include <eikenv.h> // CEikonEnv
#include <centralrepository.h> // CRepository
-#include <aknfepinternalcrkeys.h> // KCRUidAknFep
-#include <cpbkcontactengine.h> // CPbkContactEngine
-#include <cpbkcontactitem.h> // CPbkContactItem, TPbkContactItemField
+#include <AknFepInternalCRKeys.h> // KCRUidAknFep
+#include <CPbkContactEngine.h> // CPbkContactEngine
+#include <CPbkContactItem.h> // CPbkContactItem, TPbkContactItemField
#include <aknnotewrappers.h> // CAknErrorNote
//<cmail>
-#include "CFSMailBox.h" // cfsmailbox
+#include "cfsmailbox.h" // cfsmailbox
//</cmail>
-#include <cpsrequesthandler.h>
-#include <cpssettings.h>
-#include <cpcsdefs.h>
-#include <vpbkeng.rsg>
+#include <CPsRequestHandler.h>
+#include <CPsSettings.h>
+#include <CPcsDefs.h>
+#include <VPbkEng.rsg>
#include <e32const.h> // TLanguage
-#include <cvpbkcontactmanager.h>
+#include <CVPbkContactManager.h>
#include "mesmrclslistsobserver.h"
#include "cesmrclsmatchobserver.h"
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclsmatchobserver.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclsmatchobserver.cpp Tue May 11 15:57:15 2010 +0300
@@ -22,17 +22,17 @@
#include "esmrfieldbuilderdef.h"
// for PCS support
-#include <cpsrequesthandler.h>
-#include <cpssettings.h>
-#include <cpsquery.h>
-#include <cpsqueryitem.h>
-#include <cpcsdefs.h>
-#include <mvpbkcontactlink.h>
-#include <cvpbkcontactmanager.h>
+#include <CPsRequestHandler.h>
+#include <CPsSettings.h>
+#include <CPsQuery.h>
+#include <CPsQueryItem.h>
+#include <CPcsDefs.h>
+#include <MVPbkContactLink.h>
+#include <CVPbkContactManager.h>
#include <aknnotewrappers.h>
#include <centralrepository.h> // CRepository
-#include <aknfepinternalcrkeys.h> // KCRUidAknFep, KAknFepPredTxtFlag
-#include <vpbkeng.rsg>
+#include <AknFepInternalCRKeys.h> // KCRUidAknFep, KAknFepPredTxtFlag
+#include <VPbkEng.rsg>
//Constants
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrconflictpopup.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrconflictpopup.cpp Tue May 11 15:57:15 2010 +0300
@@ -18,8 +18,8 @@
#include "mesmrcalentry.h"
#include "mesmrmeetingrequestentry.h"
-#include <akninfopopupnotecontroller.h>
-#include <stringloader.h>
+#include <AknInfoPopupNoteController.h>
+#include <StringLoader.h>
#include <eikenv.h>
#include <esmrgui.rsg>
#include <avkon.rsg>
@@ -230,10 +230,6 @@
CEikonEnv::Static()-> // codescanner::eikonenvstatic
HandleError(error);
}
-
- // TODO: use XML layout data. Use this one popup_preview_text_window
- /*iNote->SetPositionAndAlignment( CESMRLayoutManager::ConflictPopupPosition(),
- EHLeftVCenter );*/
iNote->ShowInfoPopupNote();
}
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrinputmodeobserver.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrinputmodeobserver.cpp Tue May 11 15:57:15 2010 +0300
@@ -21,10 +21,10 @@
#include "cesmrclslistshandler.h"
#include <e32cmn.h> // TUid
-#include <aknfepinternalcrkeys.h> // KCRUidAknFep, KAknFepPredTxtFlag
+#include <AknFepInternalCRKeys.h> // KCRUidAknFep, KAknFepPredTxtFlag
#include <centralrepository.h> // CRepository
-#include <cpcsdefs.h> // PCS TKeyboardModes enum
+#include <CPcsDefs.h> // PCS TKeyboardModes enum
#include <eikenv.h>
// Unnamed namespace for local definitions
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncsaifeditor.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncsaifeditor.cpp Tue May 11 15:57:15 2010 +0300
@@ -18,12 +18,12 @@
#include "emailtrace.h"
#include "cesmrncsaifeditor.h"
-#include <aknsdrawutils.h>
+#include <AknsDrawUtils.h>
#include <s32mem.h>
#include <txtrich.h>
#include <baclipb.h>
-#include <ptidefs.h>
-#include <stringloader.h>
+#include <PtiDefs.h>
+#include <StringLoader.h>
#include <eikedwin.h>
#include <txtclipboard.h>
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncseditor.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncseditor.cpp Tue May 11 15:57:15 2010 +0300
@@ -22,13 +22,13 @@
#include <avkon.hrh>
#include <aknenv.h> // CAknEnv
#include <txtrich.h>
-#include <aknutils.h> // AknLayoutUtils
+#include <AknUtils.h> // AknLayoutUtils
#include <txtglobl.h>
-#include <aknsconstants.h>
-#include <aknsutils.h>
-#include <aknsskininstance.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsConstants.h>
+#include <AknsUtils.h>
+#include <AknsSkinInstance.h>
+#include <AknsBasicBackgroundControlContext.h>
// ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncspopuplistbox.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncspopuplistbox.cpp Tue May 11 15:57:15 2010 +0300
@@ -22,11 +22,11 @@
#include "nmrcolormanager.h"
#include <eikclbd.h>
-#include <aknslayeredbackgroundcontrolcontext.h>
-#include <stringloader.h> // StringLoader
+#include <AknsLayeredBackgroundControlContext.h>
+#include <StringLoader.h> // StringLoader
#include <ct/rcpointerarray.h>
//text truncation
-#include <aknbiditextutils.h>//line wrapping and mirroring
+#include <AknBidiTextUtils.h>//line wrapping and mirroring
#include <aknlayoutscalable_apps.cdl.h> //xml layout data for applications
#include <aknlayoutscalable_avkon.cdl.h> //xml layout data of avkon components
#include <esmrgui.rsg>
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrresponsefield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrresponsefield.cpp Tue May 11 15:57:15 2010 +0300
@@ -25,7 +25,7 @@
#include "cesmrlistquery.h"
#include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <caluser.h>
// DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrtrackingfieldlabel.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrtrackingfieldlabel.cpp Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
#include <avkon.hrh>
#include <caluser.h>
#include <calentry.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <esmrgui.rsg>
// ======== MEMBER FUNCTIONS ========
@@ -76,11 +76,7 @@
void CESMRTrackingFieldLabel::InitializeL()
{
FUNC_LOG;
- // TODO: Do not use old layout manager anymore
- //iTitleSize = iLayout->FieldSize ( EESMRFieldAttendeeLabel );
-
- // TODO: use XML Data
- //iTitle->SetFont( iLayout->Font (iCoeEnv, EESMRFieldAttendeeLabel ) );
+
}
// ---------------------------------------------------------------------------
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrtrackstatus.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrtrackstatus.cpp Tue May 11 15:57:15 2010 +0300
@@ -32,11 +32,11 @@
#include <calentry.h>
#include <caluser.h>
#include <eikenv.h>
-#include <stringloader.h>
-#include <aknsutils.h>
-#include <aknutils.h>
-#include <aknsconstants.h>
-#include <aknbiditextutils.h>
+#include <StringLoader.h>
+#include <AknsUtils.h>
+#include <AknUtils.h>
+#include <AknsConstants.h>
+#include <AknBidiTextUtils.h>
#include <esmrgui.rsg>
#include <data_caging_path_literals.hrh>
#include <e32cmn.h>
@@ -45,10 +45,6 @@
// DEBUG
#include "emailtrace.h"
-// TODO: THIS WHOLE CLASS NEEDS TO BE REIMPLEMENTED USING XML LAYOUT DATA
-// IF THIS IS TAKEN INTO USE
-
-
// ======== MEMBER FUNCTIONS ========
// ---------------------------------------------------------------------------
@@ -142,18 +138,6 @@
}
iAddress = attendee[currentIndex]->Address().AllocL();
}
-
- // TODO: set font with XML data
- //const CFont* font = iLayout->Font (iCoeEnv, iFieldId );
- //TInt maxLineWidth = iLabel->Size().iWidth;
- //maxLineWidth -= KIconSize.iWidth;
-
- //HBufC* clippedTextHBufC = ClipTextLC( text, *font, maxLineWidth );
- //TPtr clippedText = clippedTextHBufC->Des();
- //clippedText.Trim();
- //iLabel->SetTextL( clippedText );
- //CleanupStack::PopAndDestroy( clippedTextHBufC );
- //clippedTextHBufC = NULL;
NMRBitmapManager::TMRBitmapId bitmapId;
@@ -303,29 +287,10 @@
if( aFocused )
{
- // TODO: correct this
User::LeaveIfError(
NMRBitmapManager::GetSkinBasedBitmap(
NMRBitmapManager::EMRBitmapRightClickArrow,
iActionMenuIcon, iActionMenuIconMask, TSize(20, 20) ) );
-
- // TODO: USE XML LAYOUT DATA AND CMRIMAGE
- // Even if creating mask failed, bitmap can be used (background is just not displayed correctly)
- /*if( iActionMenuIcon )
- {
- iIcon = new (ELeave) CEikImage;
- iIcon->SetPictureOwnedExternally(ETrue);
- iIcon->SetPicture( iActionMenuIcon, iActionMenuIconMask );
-
- TRect rect = Rect ( );*/
-
- // TODO: use layout data
- /*TInt iconTopMargin = ( rect.Height() - KIconSize.iHeight ) / 2;
- TPoint iconPos( rect.iBr.iX - KIconSize.iWidth - KIconBorderMargin,
- rect.iBr.iY - iconTopMargin - KIconSize.iHeight);
- iIcon->SetPosition ( iconPos );
- iIcon->SetSize ( KIconSize );*/
- //}
}
}
@@ -340,14 +305,6 @@
if ( iIcon )
{
TRect rect = Rect ( );
- // TODO: use XML layout
- /*
- TInt iconTopMargin = ( rect.Height() - KIconSize.iHeight ) / 2;
- TPoint iconPos( rect.iBr.iX - KIconSize.iWidth - KIconBorderMargin,
- rect.iBr.iY - iconTopMargin - KIconSize.iHeight);
-
- iIcon->SetPosition ( iconPos );
- iIcon->SetSize ( KIconSize );*/
}
}
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrviewerattendeesfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrviewerattendeesfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -251,10 +251,10 @@
TRect bgRect( 0, 0, 0, 0 );
if( iCalAttendees.Count() > 1 )
{
- bgRect.SetRect(
- TPoint( viewerRect.iTl.iX,
- viewerRect.iTl.iY - FocusMargin() ),
- TPoint( viewerRect.iBr.iX,
+ bgRect.SetRect(
+ TPoint( viewerRect.iTl.iX,
+ viewerRect.iTl.iY - FocusMargin() ),
+ TPoint( viewerRect.iBr.iX,
viewerRect.iBr.iY + FocusMargin() ) );
}
else
@@ -268,11 +268,11 @@
// Move focus rect so that it's relative to field's position.
bgRect.Move( -Position() );
SetFocusRect( bgRect );
-
+
iRichTextViewer->SetRect( viewerRect );
- // Failures are ignored.
- TRAP_IGNORE(
+ // Failures are ignored.
+ TRAP_IGNORE(
iRichTextViewer->SetFontL( viewerLayoutText.Font() );
if( iCalAttendees.Count() > 0 )
{
@@ -280,15 +280,15 @@
}
iRichTextViewer->ApplyLayoutChangesL();
);
-
+
// Update AttendeesList only if iRichTextViewer width was changed.
// This happens when screen orientation changes e.g. This check
// also prevents recursive calls to UpdateAttendeesListL since
// it causes edwin size changed event.
if ( iRichTextViewer->Size().iWidth != richTextViewerWidth )
{
- // Most of this case is screen orientation, in this case we need to
- // Record the index of focusing link, after updating link array, then
+ // Most of this case is screen orientation, in this case we need to
+ // Record the index of focusing link, after updating link array, then
// reset the focusing to original one.
TInt focusingIndex = iRichTextViewer->GetFocusLink();
// Ignore leave, there's nothing we can do if leave occurs.
@@ -360,7 +360,6 @@
{
// Parent rect will be list area later --> no need to calculate it manually.
TRect parentRect = Parent()->Rect();
- // TODO: Remove this after new list area is completed. See previous comment.
TRect contentRect = NMRLayoutManager::GetLayoutRect(
parentRect, NMRLayoutManager::EMRLayoutListArea ).Rect();
// We have two lines; title and richtextviewer.
@@ -408,21 +407,6 @@
}
// -----------------------------------------------------------------------------
-// CESMRViewerAttendeesField::HandleLongtapEventL
-// -----------------------------------------------------------------------------
-//
-void CESMRViewerAttendeesField::HandleLongtapEventL( const TPoint& aPosition )
- {
- FUNC_LOG;
-
- if ( iRichTextViewer->Rect().Contains( aPosition ) )
- {
- iRichTextViewer->LinkSelectedL();
- HandleTactileFeedbackL();
- }
- }
-
-// -----------------------------------------------------------------------------
// CESMRViewerAttendeesField::HandleEdwinSizeEventL
// -----------------------------------------------------------------------------
//
@@ -547,7 +531,6 @@
NMRLayoutManager::EMRTextLayoutTextEditor );
const CFont* font = text.Font();
- // TODO: correct icon zise to correct one. Ask from UI specifier.
TSize iconSize( 20, 20);
TInt maxLineWidth = iRichTextViewer->LayoutWidth();
@@ -678,21 +661,21 @@
FUNC_LOG;
// Calculates the line spacing based on default one line layout data
TInt lineSpacing( 0 );
-
+
TRect rect( Rect() );
-
+
TAknLayoutRect rowLayoutRect =
NMRLayoutManager::GetFieldRowLayoutRect( rect, 1 );
TRect rowRect = rowLayoutRect.Rect();
- TAknLayoutText labelLayout =
- NMRLayoutManager::GetLayoutText(
+ TAknLayoutText labelLayout =
+ NMRLayoutManager::GetLayoutText(
rect, NMRLayoutManager::EMRTextLayoutTextEditor );
-
+
TRect defaultTextRect = labelLayout.TextRect();
-
+
TInt difference = rowRect.Height() - defaultTextRect.Height();
-
+
lineSpacing = difference * 2;
return lineSpacing;
@@ -707,28 +690,28 @@
FUNC_LOG;
// Calculates focus margin based on default one line layout data
TInt focusMagin( 0 );
-
+
TRect rect( Rect() );
-
+
TAknLayoutRect rowLayoutRect =
NMRLayoutManager::GetFieldRowLayoutRect( rect, 1 );
TRect rowRect = rowLayoutRect.Rect();
- TAknLayoutText labelLayout =
- NMRLayoutManager::GetLayoutText(
+ TAknLayoutText labelLayout =
+ NMRLayoutManager::GetLayoutText(
rect, NMRLayoutManager::EMRTextLayoutTextEditor );
-
+
TRect defaultTextRect = labelLayout.TextRect();
-
- TAknLayoutRect bgLayoutRect =
- NMRLayoutManager::GetLayoutRect(
+
+ TAknLayoutRect bgLayoutRect =
+ NMRLayoutManager::GetLayoutRect(
rect, NMRLayoutManager::EMRLayoutTextEditorBg );
TRect defaultBgRect( bgLayoutRect.Rect() );
TInt difference = defaultBgRect.Height() - defaultTextRect.Height();
-
+
focusMagin = TReal( difference / 2 );
-
+
return focusMagin;
}
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrviewerfromfield.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrviewerfromfield.cpp Tue May 11 15:57:15 2010 +0300
@@ -25,10 +25,10 @@
#include <calentry.h>
#include <caluser.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <eikenv.h>
#include <avkon.hrh>
-#include <aknutils.h>
+#include <AknUtils.h>
#include <esmrgui.rsg>
// DEBUG
@@ -73,7 +73,7 @@
Rect(), NMRLayoutManager::EMRTextLayoutMultiRowTextEditor );
iRichTextViewer->SetFontL( editorRect.Font() );
iRichTextViewer->ApplyLayoutChangesL();
-
+
const CFont* topicFont =
AknLayoutUtils::FontFromId( EAknLogicalFontPrimaryFont, NULL );
iFieldTopic->SetFont( topicFont );
@@ -157,9 +157,9 @@
editorRect.TextRect().iTl.iX, editorRect.TextRect().iTl.iY );
TSize prefSize( editorRect.TextRect().Width(), iExpandedSize.iHeight );
TRect viewerRect( tlPoint, prefSize );
- // Failures are ignored.
- TRAP_IGNORE(
- // Try setting font
+ // Failures are ignored.
+ TRAP_IGNORE(
+ // Try setting font
iRichTextViewer->SetFontL( editorRect.Font() );
// Try applying changes
iRichTextViewer->ApplyLayoutChangesL();
@@ -346,21 +346,6 @@
}
// ---------------------------------------------------------------------------
-// CESMRViewerFromField::HandleLongtapEventL
-// ---------------------------------------------------------------------------
-//
-void CESMRViewerFromField::HandleLongtapEventL( const TPoint& aPosition )
- {
- FUNC_LOG;
-
- if ( iRichTextViewer->Rect().Contains( aPosition ) )
- {
- iRichTextViewer->LinkSelectedL();
- HandleTactileFeedbackL();
- }
- }
-
-// ---------------------------------------------------------------------------
// CESMRViewerFromField::SetContainerWindowL()
// ---------------------------------------------------------------------------
//
--- a/meetingrequest/mrgui/mrlocationplugin/inc/cesmrlocationpluginimpl.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrlocationplugin/inc/cesmrlocationpluginimpl.h Tue May 11 15:57:15 2010 +0300
@@ -22,7 +22,7 @@
#include <e32base.h>
//<cmail>
-#include "aknserverapp.h"
+#include "AknServerApp.h"
//</cmail>
#include "cesmrlocationplugin.h"
--- a/meetingrequest/mrgui/mrlocationplugin/src/cesmrlocationpluginimpl.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrlocationplugin/src/cesmrlocationpluginimpl.cpp Tue May 11 15:57:15 2010 +0300
@@ -23,8 +23,8 @@
#include <mnproviderfinder.h>
#include <mnprovider.h>
#include <mnmapview.h>
-#include <epos_cposlandmark.h>
-#include <stringloader.h>
+#include <EPos_CPosLandmark.h>
+#include <StringLoader.h>
#include <esmrgui.rsg>
#include <ct/rcpointerarray.h>
#include <calentry.h>
--- a/meetingrequest/mrgui/src/cesmraddressinfohandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmraddressinfohandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -20,22 +20,22 @@
#include "cesmraddressinfohandler.h"
#include <eikenv.h>
-#include <aiwservicehandler.h>
-#include <aiwcontactselectiondatatypes.h>
-#include <stringloader.h>
+#include <AiwServiceHandler.h>
+#include <AiwContactSelectionDataTypes.h>
+#include <StringLoader.h>
#include <aknnotewrappers.h>
#include <calentry.h>
#include <esmrgui.rsg>
//Virtual Phonebook
-#include <cvpbkcontactmanager.h>
-#include <mvpbkcontactoperationbase.h>
-#include <mvpbkstorecontact.h>
-#include <mvpbkfieldtype.h>
-#include <vpbkeng.rsg>
-#include <cvpbkcontactfielditerator.h>
-#include <mvpbkcontactfieldtextdata.h>
-#include <mvpbkcontactlink.h>
+#include <CVPbkContactManager.h>
+#include <MVPbkContactOperationBase.h>
+#include <MVPbkStoreContact.h>
+#include <MVPbkFieldType.h>
+#include <VPbkEng.rsg>
+#include <CVPbkContactFieldIterator.h>
+#include <MVPbkContactFieldTextData.h>
+#include <MVPbkContactLink.h>
#include "cesmrdynamicitemselectionlist.h"
#include "cesmrlocationpluginhandler.h"
--- a/meetingrequest/mrgui/src/cesmrdynamicitemselectionlist.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrdynamicitemselectionlist.cpp Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
#include "cesmrdynamicitemselectionlist.h"
#include <aknlists.h>
-#include <aknpopup.h>
+#include <aknPopup.h>
#include <bautils.h>
#include <esmrgui.rsg>
#include <data_caging_path_literals.hrh>
--- a/meetingrequest/mrgui/src/cesmreditordialog.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmreditordialog.cpp Tue May 11 15:57:15 2010 +0300
@@ -51,21 +51,21 @@
#include <eikappui.h>
#include <avkon.hrh>
#include <eikmenup.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
#include <layoutmetadata.cdl.h>
-#include <akndef.h>
-#include <aknutils.h>
-#include <aknindicatorcontainer.h>
+#include <AknDef.h>
+#include <AknUtils.h>
+#include <AknIndicatorContainer.h>
#include <aknenv.h>
-#include <akneditstateindicator.h>
+#include <aknEditStateIndicator.h>
#include <aknnotewrappers.h>
-#include <documenthandler.h>
-#include <npdapi.h>
+#include <DocumentHandler.h>
+#include <NpdApi.h>
#include <calentry.h>
#include <calattachment.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <akntitle.h>
-#include <stringloader.h>
+#include <StringLoader.h>
// DEBUG
#include "emailtrace.h"
@@ -1811,7 +1811,7 @@
void CESMREditorDialog::DynInitToolbarL ( TInt /*aResourceId*/,
CAknToolbar* /*aToolbar*/ )
{
- // TODO: Not implemented yet
+
}
// ---------------------------------------------------------------------------
--- a/meetingrequest/mrgui/src/cesmrlocationpluginhandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrlocationpluginhandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,16 +19,16 @@
#include "esmrconfig.hrh"
#include <calentry.h>
-#include <stringloader.h>
-#include <aknquerydialog.h>
+#include <StringLoader.h>
+#include <AknQueryDialog.h>
#include <esmrgui.rsg>
//<cmail>
#include "cesmrurlparserplugin.h"
//</cmail>
-#include <clmklandmarkselectordlg.h>
-#include <tlmkitemiddbcombiinfo.h>
-#include <epos_cposlandmark.h>
-#include <aknutils.h>
+#include <CLmkLandmarkSelectorDlg.h>
+#include <TLmkItemIdDbCombiInfo.h>
+#include <EPos_CPosLandmark.h>
+#include <AknUtils.h>
#include <ct/rcpointerarray.h>
#ifdef RD_USE_MYLOCATIONUI
--- a/meetingrequest/mrgui/src/cesmrmeetingtimevalidator.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrmeetingtimevalidator.cpp Tue May 11 15:57:15 2010 +0300
@@ -30,7 +30,7 @@
#include "mesmrfieldeventqueue.h"
#include "mmrabsolutealarmcontroller.h"
#include "cesmrgenericfieldevent.h"
-#include "cesmrrecurrenceinfoHandler.h"
+#include "cesmrrecurrenceinfohandler.h"
// Unnamed namespace for local definitions
namespace { // codescanner::namespace
--- a/meetingrequest/mrgui/src/cesmrresponsedialog.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrresponsedialog.cpp Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
#include <eikcolib.h>
#include <eikappui.h>
#include <avkon.hrh>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
#include <eikedwin.h>
#include <esmrgui.rsg>
#include <calentry.h>
--- a/meetingrequest/mrgui/src/cesmrtitlepane.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrtitlepane.cpp Tue May 11 15:57:15 2010 +0300
@@ -22,14 +22,14 @@
//<cmail>
#include "esmrdef.h"
//</cmail>
-#include <akniconutils.h>
+#include <AknIconUtils.h>
#include <gulcolor.h>
-#include <aknutils.h>
-#include <aknsconstants.h>
+#include <AknUtils.h>
+#include <AknsConstants.h>
#include <aknsconstants.hrh>
-#include <aknsutils.h>
+#include <AknsUtils.h>
#include <data_caging_path_literals.hrh>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
#include "emailtrace.h"
--- a/meetingrequest/mrgui/src/cesmrtrackingview.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrtrackingview.cpp Tue May 11 15:57:15 2010 +0300
@@ -30,19 +30,19 @@
#include <eiklabel.h>
#include <avkon.hrh>
-#include <magnentryui.h>
-#include <stringloader.h>
+#include <MAgnEntryUi.h>
+#include <StringLoader.h>
#include <gulcolor.h>
#include <eikimage.h>
#include <esmrgui.rsg>
-#include <akniconutils.h>
+#include <AknIconUtils.h>
#include <eikenv.h>
-#include <aknsconstants.h>
-#include <aknutils.h>
-#include <aknsdrawutils.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsConstants.h>
+#include <AknUtils.h>
+#include <AknsDrawUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <hlplch.h>
-#include <akniconarray.h>
+#include <AknIconArray.h>
#include <eikclbd.h>
#include <calentry.h>
#include <caluser.h>
--- a/meetingrequest/mrgui/src/cesmrtrackingviewdialog.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrtrackingviewdialog.cpp Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : ESMR tracking view dialog
-* Version : %version: e002sa33#15 %
+* Version : %version: e002sa32#15.1.1 %
*
*/
@@ -20,10 +20,10 @@
#include "cesmrtrackingviewdialog.h"
// SYSTEM INCLUDE
-#include <aknutils.h>
-#include <stringloader.h>
+#include <AknUtils.h>
+#include <StringLoader.h>
#include <calentry.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
//<cmail>
#include "cesmrpolicy.h"
//</cmail>
--- a/meetingrequest/mrgui/src/cesmruifactory.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmruifactory.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,7 +29,7 @@
#include <esmrgui.rsg>
#include <e32base.h>
#include <eikenv.h>
-#include <coneresloader.h>
+#include <ConeResLoader.h>
#include <data_caging_path_literals.hrh>
#include <bautils.h>
--- a/meetingrequest/mrgui/src/cesmrview.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrview.cpp Tue May 11 15:57:15 2010 +0300
@@ -15,10 +15,6 @@
*
*/
-// <cmail> custom sw help files not avilable in Cmail
-//#include <fscale.hlp.hrh> //for custom_sw helps
-//#include <fsmr.hlp.hrh> //for custom_sw helps
-// </cmail>
#include "cesmrview.h"
#include "mesmrmeetingrequestentry.h"
#include "esmrinternaluid.h"
@@ -40,17 +36,17 @@
#include <eiklabel.h>
#include <avkon.hrh>
-#include <magnentryui.h>
-#include <stringloader.h>
+#include <MAgnEntryUi.h>
+#include <StringLoader.h>
#include <gulcolor.h>
#include <eikimage.h>
#include <esmrgui.rsg>
-#include <akniconutils.h>
+#include <AknIconUtils.h>
#include <eikenv.h>
-#include <aknsconstants.h>
-#include <aknutils.h>
-#include <aknsdrawutils.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsConstants.h>
+#include <AknUtils.h>
+#include <AknsDrawUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <hlplch.h>
#include <csxhelp/cmail.hlp.hrh>
#include <touchfeedback.h>
@@ -62,10 +58,6 @@
#include "emailtrace.h"
-
-// <cmail> Removed profiling. </cmail>
-
-
// ======== MEMBER FUNCTIONS ========
// ---------------------------------------------------------------------------
@@ -214,7 +206,7 @@
delete iAttachmentIndicator;
iAttachmentIndicator = NULL;
- ReLayout();
+ SizeChanged();
}
}
break;
@@ -317,9 +309,7 @@
else
{
// Only viewer from Mail supported
- // TODO: Change to KFS_VIEWER_HLP_MR_RECEIVED
- // when help id is released on wk9 platform
- LaunchHelpL( KFS_VIEWER_HLP_MEETING_REQ_VIEW );
+ LaunchHelpL( KFS_VIEWER_HLP_MR_RECEIVED );
}
}
else if ( mrEntry->RoleL() == EESMRRoleOrganizer )
@@ -664,8 +654,13 @@
{
return;
}
-
- TRect containerRect( Rect() );
+
+ // Remove possible intersection with toolbar from container rect
+ TRect containerRect( ContainerRect() );
+
+ // Now toolbar does not intersect with view, so it must not be taken
+ // into account when calculating other component layouts.
+ containerRect.SetRect( TPoint( 0, 0 ), containerRect.Size() );
// Get the rect of stripe.
TAknLayoutRect stripeLayoutRect =
@@ -682,14 +677,11 @@
TRect listareaRect( listareaLayoutRect.Rect() );
// List panes default rect needs to be modified due to
- // possible toolbar, scrollbar and calendar indication stripe
+ // scrollbar and calendar indication stripe
// Remove stripe width from list pane width
listareaRect.iTl.iX += iStripeRect.Width();
- // Remove toolbar width from list pane width
- listareaRect.iBr.iX -= iToolbar.Rect().Width();
-
if( iScrollBar )
{
TAknLayoutRect scrollareaLayoutRect =
@@ -699,9 +691,6 @@
// Scroll bar's height is always the same as listpane's height
scrollareaRect.SetHeight( listareaRect.Height() );
- // Scrollbar needs to be moved to the left side of possible
- // toolbar
- scrollareaRect.Move( -iToolbar.Rect().Width(), 0 );
iScrollBar->SetRect( scrollareaRect );
// Remove scroll bar width from list area's width
@@ -744,8 +733,7 @@
scrollWidth = iScrollBar->Rect().Width();
}
- naviArrowRightRect.Move(
- -( iToolbar.Rect().Width() + scrollWidth ), 0 );
+ naviArrowRightRect.Move( scrollWidth, 0 );
iNaviArrowRight->SetRect( naviArrowRightRect );
}
@@ -766,9 +754,7 @@
// The listPane's area should be:
// X: Should subtract the width of stripe
- // Y: Should subtract the height of MRToolbar
listareaRect.iTl.iX += iStripeRect.Width();
- listareaRect.iBr.iY -= iToolbar.Rect().Height();
iListPane->SetRect( listareaRect );
@@ -799,10 +785,6 @@
// stripe width in portrait
naviArrowLeftRect.Move( iStripeRect.Width(), 0 );
- // Left arrow needs to be moved up the amount of
- // possible toolbar height in portrait
- naviArrowLeftRect.Move( 0, -iToolbar.Rect().Height() );
-
iNaviArrowLeft->SetRect( naviArrowLeftRect );
}
@@ -817,11 +799,6 @@
// stripe width in portrait
naviArrowRightRect.Move( iStripeRect.Width(), 0 );
- // Right arrow needs to be moved up the amount of
- // possible toolbar height in portrait
- naviArrowRightRect.Move( 0, -iToolbar.Rect().Height() );
-
-
iNaviArrowRight->SetRect( naviArrowRightRect );
}
}
@@ -996,7 +973,6 @@
case KAknLocalZoomLayoutSwitch:
{
SizeChanged();
- DrawNow();
break;
}
default:
@@ -1108,16 +1084,6 @@
}
// ---------------------------------------------------------------------------
-// CESMRView::ReLayout
-// ---------------------------------------------------------------------------
-//
-void CESMRView::ReLayout()
- {
- FUNC_LOG;
- SizeChanged();
- }
-
-// ---------------------------------------------------------------------------
// CESMRView::ProcessEventL
// ---------------------------------------------------------------------------
//
@@ -1161,7 +1127,7 @@
iAttachmentIndicator->SetTextL( value->StringValue() );
iAttachmentIndicator->MakeVisible( ETrue );
- ReLayout();
+ SizeChanged();
}
}
}
@@ -1172,7 +1138,7 @@
//
TRect CESMRView::CalculateAttachmentIndicatorLayout()
{
- TRect containerRect( Rect() );
+ TRect containerRect( ContainerRect() );
TAknLayoutRect naviArrowLeftLayoutRect =
NMRLayoutManager::GetLayoutRect( containerRect,
@@ -1194,20 +1160,17 @@
scrollWidth = iScrollBar->Rect().Width();
}
- naviArrowRightRect.Move(
- -( iToolbar.Rect().Width() + scrollWidth ), 0 );
+ naviArrowRightRect.Move( scrollWidth, 0 );
}
else
{
// Left arrow needs to be moved right the amount of
// stripe width in portrait
naviArrowLeftRect.Move( iStripeRect.Width(), 0 );
- naviArrowLeftRect.Move( 0, -iToolbar.Rect().Height() );
-
+
TRect naviArrowRightRect = naviArrowRightLayoutRect.Rect();
naviArrowRightRect.Move( iStripeRect.Width(), 0 );
- naviArrowRightRect.Move( 0, -iToolbar.Rect().Height() );
}
// Get height for one row
@@ -1217,9 +1180,6 @@
TRect rowRect( rowLayout.Rect() );
TRect attachmentIndicatorRect;
- /*attachmentIndicatorRect.iTl =
- TPoint( naviArrowLeftRect.iBr.iX,
- naviArrowLeftRect.iBr.iY - rowRect.Height() ); */
attachmentIndicatorRect.iTl =
TPoint( naviArrowLeftRect.iBr.iX,
@@ -1232,4 +1192,32 @@
return attachmentIndicatorRect;
}
+// ---------------------------------------------------------------------------
+// CESMRView::ContainerRect
+// ---------------------------------------------------------------------------
+//
+TRect CESMRView::ContainerRect() const
+ {
+ // Remove possible intersection with toolbar from container rect
+ TRect containerRect( PositionRelativeToScreen(), Rect().Size() );
+ TRect toolbar( iToolbar.Rect() );
+ if ( containerRect.Intersects( toolbar ) )
+ {
+ toolbar.Intersection( containerRect );
+ if ( Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ containerRect.SetWidth( containerRect.Width() - toolbar.Width() );
+ }
+ else
+ {
+ containerRect.SetHeight( containerRect.Height() - toolbar.Height() );
+ }
+ }
+ // Now toolbar does not intersect with view, so it must not be taken
+ // into account when calculating other component layouts.
+ containerRect.SetRect( TPoint( 0, 0 ), containerRect.Size() );
+
+ return containerRect;
+ }
+
// EOF
--- a/meetingrequest/mrgui/src/cesmrviewerdialog.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrviewerdialog.cpp Tue May 11 15:57:15 2010 +0300
@@ -54,18 +54,18 @@
#include <eikenv.h>
#include <eikappui.h>
#include <avkon.hrh>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
#include <eikmenup.h>
#include <calentry.h>
#include <apgtask.h>
#include <apmstd.h>
#include <apgcli.h>
-#include <akndef.h>
-#include <aknutils.h>
-#include <stringloader.h>
+#include <AknDef.h>
+#include <AknUtils.h>
+#include <StringLoader.h>
#include <eikspane.h>
#include <e32keys.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <w32std.h>
// DEBUG
@@ -196,7 +196,7 @@
iTitlePane->Rollback();
delete iTitlePane;
}
-
+
delete iESMRSendUI;
delete iLocationPluginHandler;
delete iFeatures;
@@ -240,8 +240,8 @@
iToolbar = CMRToolbar::NewL();
TRect clientRect;
- AknLayoutUtils::LayoutMetricsRect(
- AknLayoutUtils::EMainPane,
+ AknLayoutUtils::LayoutMetricsRect(
+ AknLayoutUtils::EMainPane,
clientRect );
TBool responseReady(EFalse);
@@ -272,14 +272,14 @@
// Give the strategy to the iView
// storage ownership is transferred to CESMRView
- iView = CESMRView::NewL(
- storage,
- *calEntry,
- clientRect,
- *iFocusStrategy,
+ iView = CESMRView::NewL(
+ storage,
+ *calEntry,
+ clientRect,
+ *iFocusStrategy,
*iToolbar,
this );
-
+
iView->SetViewMode( EESMRViewMR );
if ( calEntry->Entry().SummaryL().Length() == 0 )
@@ -335,7 +335,7 @@
{
iTitlePane = CESMRTitlePaneHandler::NewL( *iEikonEnv );
}
-
+
HBufC* titleText = StringLoader::LoadLC( titleStringId, iCoeEnv );
iTitlePane->SetNewTitle( titleText );
CleanupStack::PopAndDestroy( titleText );
@@ -356,7 +356,7 @@
// Needs to be constructed here
ConstructToolbarL();
-
+
switch ( iInfoProvider.EntryL()->Type() )
{
case MESMRCalEntry::EESMRCalEntryMeetingRequest:
@@ -364,9 +364,9 @@
iView->InitialScrollL();
MESMRMeetingRequestEntry* entry =
- static_cast<MESMRMeetingRequestEntry*>(
+ static_cast<MESMRMeetingRequestEntry*>(
iInfoProvider.EntryL() );
-
+
if ( entry->IsOpenedFromMail() )
{
iView->SetNaviArrowStatus(
@@ -622,10 +622,10 @@
}
}
}
-
- // If entry is recurring, we want to ask from user, if
+
+ // If entry is recurring, we want to ask from user, if
// single instance or whole series will be forwarded
- if( aCommand == EESMRCmdForwardAsMail &&
+ if( aCommand == EESMRCmdForwardAsMail &&
iInfoProvider.EntryL()->IsRecurrentEventL() )
{
SetRecurrenceModRuleL(
@@ -716,7 +716,7 @@
{
iView->ProcessEditorCommandL( EMRCmdHideAttachmentIndicator );
}
- break;
+ break;
default:
{
if ( aCommand >= EESMRCmdActionMenuFirst &&
@@ -821,7 +821,7 @@
res = HandleMRExitL( aButtonId );
break;
}
-
+
default:
{
if(iExitTriggered)
@@ -894,7 +894,7 @@
}
}
}
-
+
return retValue;
}
@@ -931,7 +931,7 @@
TInt /*aResourceId*/,
CAknToolbar* /*aToolbar*/ )
{
- // TODO: Not implemented yet
+
}
// ---------------------------------------------------------------------------
@@ -1324,7 +1324,7 @@
{
const CESMRPolicy& currentPolicy(
iInfoProvider.PolicyProvider().CurrentPolicy() );
-
+
aMenuPane->SetItemDimmed(
EESMRCmdMailDelete,
!iCallback.IsCommandAvailable(
@@ -1537,7 +1537,7 @@
static_cast<MESMRBuilderExtension*>( plugin->ExtensionL(uid) );
MESMRCalEntry* calEntry = iInfoProvider.EntryL();
-
+
if ( extension && MESMRCalEntry::EESMRCalEntryMeetingRequest == calEntry->Type())
{
// Static cast is safe here. We know for sure that entry is MR
@@ -1725,14 +1725,14 @@
void CESMRViewerDialog::HandleFieldEventL( const MESMRFieldEvent& aEvent )
{
FUNC_LOG;
-
+
MESMRFieldEvent::TEventType type( aEvent.Type() );
-
+
if ( MESMRFieldEvent::EESMRFieldCommandEvent == type )
{
ProcessCommandEventL( aEvent );
}
- else if ( MESMRFieldEvent::EESMRFieldChangeEvent == type )
+ else if ( MESMRFieldEvent::EESMRFieldChangeEvent == type )
{
ProcessFieldEventL( aEvent );
}
@@ -1822,7 +1822,7 @@
mrEntry = static_cast<MESMRMeetingRequestEntry*>( calEntry );
TBool openedFromEmail( mrEntry->IsOpenedFromMail() );
-
+
// If entry is opened from mail, contains remote attachments and
// mailbox is MfE, we show the query.
if ( openedFromEmail && mrEntry->ContainsRemoteAttachmentsL() &&
@@ -1856,28 +1856,28 @@
void CESMRViewerDialog::ConstructToolbarL()
{
FUNC_LOG;
- if( iInfoProvider.EntryL()->Type() ==
+ if( iInfoProvider.EntryL()->Type() ==
MESMRCalEntry::EESMRCalEntryMeetingRequest )
{
MESMRMeetingRequestEntry* entry =
- static_cast<MESMRMeetingRequestEntry*>(
+ static_cast<MESMRMeetingRequestEntry*>(
iInfoProvider.EntryL() );
-
- if( !entry->OccursInPastL() &&
- !entry->IsEntryOutOfDateL() &&
+
+ if( !entry->OccursInPastL() &&
+ !entry->IsEntryOutOfDateL() &&
!entry->IsMeetingCancelledL() )
{
if ( entry->RoleL()== EESMRRoleRequiredAttendee ||
entry->RoleL()== EESMRRoleOptionalAttendee )
{
- TSize screenSize =
+ TSize screenSize =
iEikonEnv->ScreenDevice()->SizeInPixels();
-
+
TBool isVGA( EFalse );
- if( ( screenSize.iHeight == KVGAOneSide ||
- screenSize.iWidth == KVGAOneSide ) &&
- ( screenSize.iHeight == KVGAOtherSide ||
- screenSize.iWidth == KVGAOtherSide ) &&
+ if( ( screenSize.iHeight == KVGAOneSide ||
+ screenSize.iWidth == KVGAOneSide ) &&
+ ( screenSize.iHeight == KVGAOtherSide ||
+ screenSize.iWidth == KVGAOtherSide ) &&
screenSize.iHeight != screenSize.iWidth )
{
isVGA = ETrue;
@@ -1892,12 +1892,12 @@
iToolbar->InitializeToolbarL(
CMRToolbar::EMRViewerAttendee );
iToolbar->ShowToolbar( ETrue );
-
+
// Toolbar created, relayouting needed
- iView->ReLayout();
+ SizeChanged();
}
}
- }
+ }
}
}
@@ -1908,7 +1908,7 @@
void CESMRViewerDialog::ProcessCommandEventL( const MESMRFieldEvent& aEvent )
{
FUNC_LOG;
-
+
TInt* command = static_cast< TInt* >( aEvent.Param( 0 ) );
switch ( *command )
@@ -1954,7 +1954,7 @@
{
break;
}
- }
+ }
}
// ---------------------------------------------------------------------------
@@ -1963,8 +1963,8 @@
//
void CESMRViewerDialog::ProcessFieldEventL( const MESMRFieldEvent& aEvent )
{
- FUNC_LOG;
+ FUNC_LOG;
iView->ProcessEventL( aEvent );
}
-
+
// EOF
--- a/meetingrequest/mrgui/src/cmrattachmentindicator.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrattachmentindicator.cpp Tue May 11 15:57:15 2010 +0300
@@ -18,9 +18,9 @@
#include "cmrattachmentindicator.h"
#include <biditext.h>
-#include <aknutils.h>
-#include <akniconutils.h>
-#include <aknbiditextutils.h>
+#include <AknUtils.h>
+#include <AknIconUtils.h>
+#include <AknBidiTextUtils.h>
namespace
{
--- a/meetingrequest/mrgui/src/cmrfieldcontainer.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrfieldcontainer.cpp Tue May 11 15:57:15 2010 +0300
@@ -776,7 +776,6 @@
// Field is in edit mode
if( field->FieldMode() == EESMRFieldModeEdit )
{
- // TODO: CORRECT if broken
TInt viewBottom( parentRect.iBr.iY );
TInt fieldUpper( 0 );
@@ -798,7 +797,7 @@
// scroll amount.
if ( iFocusedFieldIndex == iFactory.Count()-1 )
{
- px += KVerticalScrollMargin; // TODO: Fix me! K-value must be removed.
+ px += KVerticalScrollMargin;
}
// Scrollbar and physics update is done here
--- a/meetingrequest/mrgui/src/cmrlistpane.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrlistpane.cpp Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
#include "nmrlayoutmanager.h"
#include <eikscrlb.h>
-#include <aknutils.h>
+#include <AknUtils.h>
#include <touchfeedback.h>
//DEBUG
@@ -65,7 +65,7 @@
// ---------------------------------------------------------------------------
//
CMRListPane::CMRListPane( MESMRFieldStorage& aFactory,
- TAknDoubleSpanScrollBarModel& aScrollModel,
+ TAknDoubleSpanScrollBarModel& aScrollModel,
CAknDoubleSpanScrollBar& aScroll,
MMRScrollBarObserver& aScrollBarObserver )
: iFactory( aFactory ),
@@ -94,14 +94,14 @@
//
CMRListPane* CMRListPane::NewL( const CCoeControl& aParent,
MESMRFieldStorage& aFactory,
- TAknDoubleSpanScrollBarModel& aScrollModel,
- CAknDoubleSpanScrollBar& aScroll,
+ TAknDoubleSpanScrollBarModel& aScrollModel,
+ CAknDoubleSpanScrollBar& aScroll,
MMRScrollBarObserver& aScrollBarObserver )
{
FUNC_LOG;
- CMRListPane* self = new( ELeave )CMRListPane(
- aFactory,
- aScrollModel,
+ CMRListPane* self = new( ELeave )CMRListPane(
+ aFactory,
+ aScrollModel,
aScroll,
aScrollBarObserver );
CleanupStack::PushL( self );
@@ -123,7 +123,7 @@
iLongtapDetector = CAknLongTapDetector::NewL( this );
iLongtapDetector->SetLongTapDelay( KLongTapDelay );
iLongtapDetector->SetTimeDelayBeforeAnimation( KLongTapAnimationDelay );
-
+
iFieldContainer = CMRFieldContainer::NewL( iFactory, *this );
iFieldContainer->SetFieldContainerObserver( this );
@@ -156,7 +156,7 @@
{
FUNC_LOG;
iFactory.InternalizeL( aEntry );
-
+
// This is called to make sure everything is drawn correctly
DrawDeferred();
}
@@ -214,10 +214,7 @@
void CMRListPane::InitialScrollL()
{
FUNC_LOG;
- // TODO: Fix or remove! L-Function called in non-leaving function!
- // Suggestion: Move functionality to viewerdialog and use existing
- // functions in listpane to do the required actions.
-
+
// Check if the ResponseArea exist
TESMREntryFieldId id = GetResponseFieldsFieldId();
@@ -272,7 +269,7 @@
{
FUNC_LOG;
return 1; // iFieldContainer
-
+
}
// ---------------------------------------------------------------------------
@@ -296,13 +293,13 @@
{
return;
}
-
+
TSize containerSize( iFieldContainer->MinimumSize() );
iFieldContainer->SetSize( containerSize );
-
+
// Physics:
iPhysics->InitPhysics();
-
+
DoUpdateScrollBar();
}
@@ -318,7 +315,7 @@
// First check if the focused item needs the key event
response = FocusedField()->OfferKeyEventL( aKeyEvent, aType );
-
+
if ( aType == EEventKey
&& response == EKeyWasNotConsumed )
{
@@ -328,7 +325,7 @@
case EStdKeyUpArrow:
{
response = iFieldContainer->MoveFocusUpL( HiddenFocus() );
-
+
// Focus changed via keyboard, iClickedItem is no
// longer valid
iClickedField = NULL;
@@ -337,7 +334,7 @@
case EStdKeyDownArrow:
{
response = iFieldContainer->MoveFocusDownL( HiddenFocus() );
-
+
// Focus changed via keyboard, iClickedItem is no
// longer valid
iClickedField = NULL;
@@ -349,7 +346,7 @@
}
}
}
-
+
return response;
}
@@ -362,7 +359,7 @@
const TPoint& /* aPenEventScreenLocation */ )
{
FUNC_LOG;
- iLongTapEventConsumed = EFalse;
+ iLongTapEventInProgess = EFalse;
// Long tap functionality may vary between fields
// ==> Command field to execute action related to long tap
TInt count( iFactory.Count() );
@@ -375,7 +372,7 @@
&& field->Rect().Contains( aPenEventLocation ) )
{
field->LongtapDetectedL( aPenEventLocation );
- iLongTapEventConsumed = ETrue;
+ iLongTapEventInProgess = ETrue;
break;
}
}
@@ -388,11 +385,11 @@
void CMRListPane::DoUpdateScrollBar( TInt aFocusPosition )
{
FUNC_LOG;
- // Set this lispane's size as scroll bar's window size
+ // Set this lispane's size as scroll bar's window size
iScrollModel.SetWindowSize( iSize.iHeight );
// Set fieldcontainer's height as scrolbar's scroll span
iScrollModel.SetScrollSpan( iFieldContainer->MinimumSize().iHeight );
-
+
// Update scrollbar focus position.
if( aFocusPosition == KErrNotFound )
{
@@ -407,7 +404,7 @@
// finally update the new thumb position to view's
// iScrollBarThumbPosition member.
- iScrollBarObserver.ScrollBarPositionChanged(
+ iScrollBarObserver.ScrollBarPositionChanged(
iScroll.ThumbPosition() );
}
@@ -460,10 +457,10 @@
FUNC_LOG;
TPoint point = iFieldContainer->Position();
point.iY -= aPx;
-
+
// This initializes Draw also
iFieldContainer->SetPosition( point );
-
+
// Non-kinetic scrolling executed. Update
// new position to physics.
iPhysics->UpdateVerticalScrollIndex( UpdatedFocusPosition() );
@@ -480,7 +477,7 @@
FUNC_LOG;
TPoint point = iFieldContainer->Position();
point.iY += aPx;
-
+
// This initializes Draw also
iFieldContainer->SetPosition( point );
// Non-kinetic scrolling executed. Update
@@ -499,7 +496,7 @@
{
// Update physics world size
iPhysics->InitPhysics();
-
+
// Update scrollbar
DoUpdateScrollBar();
}
@@ -528,9 +525,8 @@
//
TESMREntryFieldId CMRListPane::GetResponseFieldsFieldId()
{
- // TODO: Should be removed. This shouldn't be even a public function!
CESMRField* rfield = iFactory.FieldById( EESMRFieldResponseArea );
-
+
if ( rfield && rfield->IsVisible() && !rfield->IsNonFocusing() )
{
return EESMRFieldResponseArea;
@@ -560,10 +556,10 @@
field->SetListObserver( iFieldContainer );
}
}
-
+
// This "for" circle can not be mixed with the above one, since the
- // field->ActivateL() will call some functions which will traverse
- // all the fields, but that time, not all the fields have set the
+ // field->ActivateL() will call some functions which will traverse
+ // all the fields, but that time, not all the fields have set the
// container window.
for ( TInt i = 0; i < count; ++i )
{
@@ -586,40 +582,53 @@
{
return;
}
-
+
+ // If new down event is received, and
+ // iLongTapEventInProgess flag is still ETrue, we need to
+ // set it back to EFalse -> Long tap event cannot be in progress
+ // in this case anymore.
+ if( aPointerEvent.iType == TPointerEvent::EButton1Down &&
+ iLongTapEventInProgess )
+ {
+ iLongTapEventInProgess = EFalse;
+ }
+
// Forward all listpane related events to physics api first.
if ( iPhysics->HandlePointerEventL( aPointerEvent, iPhysicsActionOngoing ) )
{
DoUpdateScrollBar();
- // Physics in action. If long tap detection is active,
+ // Physics in action. If long tap detection is active,
// it should be cancelled.
if( iLongtapDetector->IsActive() )
{
iLongtapDetector->Cancel();
}
}
-
+
if( !iPhysicsActionOngoing )
- {
- // Offer pointer event to long tap detector if event occures within fields
- if( iFieldContainer->Rect().Contains( aPointerEvent.iPosition ) )
+ {
+ UpdateClickedField( aPointerEvent );
+
+ // Offer pointer event to long tap detector if field supports long tap
+ // functionality
+ if( ClickedField()->SupportsLongTapFunctionalityL( aPointerEvent ) )
{
iLongtapDetector->PointerEventL( aPointerEvent );
}
SetFocusAfterPointerEventL( aPointerEvent );
-
- // If longtap event has been handled, then do not handle signal event anymore.
- if( !iLongTapEventConsumed )
+
+ // If longtap event is in progress, do not pass events to coecontrol
+ if( !iLongTapEventInProgess )
{
CCoeControl::HandlePointerEventL( aPointerEvent );
}
- else
+ // Longtap event executed after up event ->
+ // Let's set iLongTapEventInProgess to EFalse
+ else if( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
- iLongTapEventConsumed = EFalse;
+ iLongTapEventInProgess = EFalse;
}
-
- UpdateClickedField( aPointerEvent );
}
}
@@ -633,10 +642,10 @@
// This ActiveteL is required only for setting the initial position
// of the field container. After setting the position, physics is
// initialized with new values also.
-
+
CCoeControl::ActivateL();
iFieldContainer->SetPosition( Position() );
-
+
// Physics:
iPhysics->InitPhysics();
}
@@ -667,12 +676,12 @@
// Update the new thumb position to view's
// iScrollBarThumbPosition member.
- iScrollBarObserver.ScrollBarPositionChanged(
+ iScrollBarObserver.ScrollBarPositionChanged(
iScroll.ThumbPosition() );
-
+
iScroll.DrawDeferred();
-
- if( FeedbackScrollMarginExceeded(
+
+ if( FeedbackScrollMarginExceeded(
Abs( verticalScrollIndex - iPreviousVerticalScrollIndex ) ) )
{
HandleTactileFeedback( ETouchFeedbackSlider );
@@ -680,12 +689,12 @@
iPreviousVerticalScrollIndex = verticalScrollIndex;
}
}
-
+
// ---------------------------------------------------------------------------
// CESMRField::HandleTactileFeedback
// ---------------------------------------------------------------------------
//
-void CMRListPane::HandleTactileFeedback(
+void CMRListPane::HandleTactileFeedback(
const TTouchLogicalFeedback& aType )
{
FUNC_LOG;
@@ -695,7 +704,7 @@
// Aquire tactile feedback pointer from TLS
iTactileFeedback = MTouchFeedback::Instance();
}
-
+
if ( iTactileFeedback && iTactileFeedback->FeedbackEnabledForThisApp() )
{
iTactileFeedback->InstantFeedback( aType );
@@ -706,7 +715,7 @@
// CMRListPane::SetFocusAfterPointerEventL
// ---------------------------------------------------------------------------
//
-void CMRListPane::SetFocusAfterPointerEventL(
+void CMRListPane::SetFocusAfterPointerEventL(
const TPointerEvent &aPointerEvent )
{
FUNC_LOG;
@@ -721,18 +730,18 @@
field->Rect().Contains( aPointerEvent.iPosition ) )
{
CESMRField* focusedField = iFieldContainer->FocusedField();
-
+
if ( field != focusedField )
{
TBool canLoseFocus(
focusedField->OkToLoseFocusL( field->FieldId() ) );
-
+
if ( canLoseFocus )
{
iFieldContainer->SetControlFocusedL( field->FieldId() );
}
}
-
+
break;
}
}
@@ -750,7 +759,7 @@
for( TInt i = 0; i < fieldCount; ++i )
{
- if( iFactory.Field( i )->Rect().Contains(
+ if( iFactory.Field( i )->Rect().Contains(
aPointerEvent.iPosition ) )
{
if( aPointerEvent.iType == TPointerEvent::EButton1Down )
@@ -769,25 +778,25 @@
{
FUNC_LOG;
TBool hiddenFocus( EFalse );
-
+
CESMRField* focusedField( iFieldContainer->FocusedField() );
- TInt focusedFieldIndex( IndexByFieldId(
+ TInt focusedFieldIndex( IndexByFieldId(
iFactory, focusedField->FieldId() ) );
if ( focusedFieldIndex < iFactory.Count() )
{
TRect focusedFieldRect( focusedField->Rect() );
TRect listPaneRect( Rect() );
-
+
TInt fieldTopY( focusedFieldRect.iTl.iY );
TInt fieldBottomY( focusedFieldRect.iBr.iY );
-
+
TInt listTopY( listPaneRect.iTl.iY );
TInt listBottomY( listPaneRect.iBr.iY );
-
- if ( ( fieldBottomY > listBottomY ||
- fieldTopY < listTopY ) &&
- focusedFieldRect.Height() < listPaneRect.Height() )
+
+ if ( ( fieldBottomY > listBottomY ||
+ fieldTopY < listTopY ) &&
+ focusedFieldRect.Height() < listPaneRect.Height() )
{
hiddenFocus = ETrue;
}
@@ -801,19 +810,20 @@
//
TBool CMRListPane::FeedbackScrollMarginExceeded( TInt aMargin )
{
+ FUNC_LOG;
/*
* This compares given margin to default one row
* field height, and returns ETrue if margin is exceeded.
* Otherwise EFalse.
*/
TBool ret( EFalse );
-
+
if( !iDefaultFieldHeight )
{
- TAknLayoutRect fieldLayoutRect(
- NMRLayoutManager::GetFieldLayoutRect(
+ TAknLayoutRect fieldLayoutRect(
+ NMRLayoutManager::GetFieldLayoutRect(
iFieldContainer->Rect(), 1 ) );
-
+
iDefaultFieldHeight = fieldLayoutRect.Rect().Height();
}
@@ -821,7 +831,7 @@
{
ret = ETrue;
}
-
+
return ret;
}
--- a/meetingrequest/mrgui/src/cmrnaviarrow.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrnaviarrow.cpp Tue May 11 15:57:15 2010 +0300
@@ -111,8 +111,7 @@
void CMRNaviArrow::InitNaviArrowsL()
{
FUNC_LOG;
- // Button
- // TODO: Icons id should be changed to correct one when available
+
CFbsBitmap* bitMapL( NULL );
CFbsBitmap* bitMapMaskL( NULL );
NMRBitmapManager::TMRBitmapId bitmapId;
--- a/meetingrequest/mrgui/src/cmrresponsedialogview.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrresponsedialogview.cpp Tue May 11 15:57:15 2010 +0300
@@ -16,10 +16,10 @@
*/
#include "cmrresponsedialogview.h"
// System includes
-#include <aknsdrawutils.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsDrawUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
#include <eikrted.h>
-#include <akndef.h>
+#include <AknDef.h>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrgui/src/cmrtoolbar.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrtoolbar.cpp Tue May 11 15:57:15 2010 +0300
@@ -247,7 +247,7 @@
if( iToolbar && iToolbar->IsShown() )
{
- rect = iToolbar->Rect();
+ rect.SetRect( iToolbar->PositionRelativeToScreen(), iToolbar->Rect().Size() );
}
return rect;
--- a/meetingrequest/mrguicommon/inc/cesmrcontactmanagerhandler.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/cesmrcontactmanagerhandler.h Tue May 11 15:57:15 2010 +0300
@@ -21,8 +21,8 @@
#include <e32base.h>
-#include <mvpbkcontactstoreobserver.h>
-#include <mvpbkcontactstorelistobserver.h>
+#include <MVPbkContactStoreObserver.h>
+#include <MVPbkContactStoreListObserver.h>
class CVPbkContactManager;
--- a/meetingrequest/mrguicommon/inc/cesmrcontactmenuhandler.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/cesmrcontactmenuhandler.h Tue May 11 15:57:15 2010 +0300
@@ -22,8 +22,8 @@
#include <e32base.h>
#include "cesmrcontactmanagerhandler.h"
-#include <mvpbkcontactfindobserver.h>
-#include <mvpbksinglecontactoperationobserver.h>
+#include <MVPbkContactFindObserver.h>
+#include <MVPbkSingleContactOperationObserver.h>
//<cmail>
#include "mfsccontactactionserviceobserver.h"
#include "fsccontactactionservicedefines.h"
--- a/meetingrequest/mrguicommon/inc/cesmrglobalnote.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/cesmrglobalnote.h Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
// INCLUDES
#include <e32base.h>
-#include <aknnotifystd.h>
+#include <AknNotifyStd.h>
//<cmail>
#include "esmrdef.h"
//</cmail>
--- a/meetingrequest/mrguicommon/inc/cmrbutton.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/cmrbutton.h Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
#ifndef CMRButton_H
#define CMRButton_H
-#include <akniconutils.h>
+#include <AknIconUtils.h>
#include <aknbutton.h>
#include "esmrfieldbuilderdef.h"
--- a/meetingrequest/mrguicommon/inc/cmrimage.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/cmrimage.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#define CMRIMAGE_H
//#include <aknsconstants.h>
-#include <akniconutils.h>
+#include <AknIconUtils.h>
#include <eikimage.h>
#include "esmrfieldbuilderdef.h"
--- a/meetingrequest/mrguicommon/inc/nmrbitmapmanager.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/nmrbitmapmanager.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#define NMRBITMAPMANAGER_H
#include <e32base.h>
-#include <aknsitemid.h>
+#include <AknsItemID.h>
// FORWARD DECLARATIONS
class CFbsBitmap;
--- a/meetingrequest/mrguicommon/inc/nmrcolormanager.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/nmrcolormanager.h Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#define NMRCOLORMANAGER_H
#include <e32base.h>
-#include <aknsitemid.h>
+#include <AknsItemID.h>
#include <gdi.h> // TRgb
// FORWARD DECLARATIONS
--- a/meetingrequest/mrguicommon/inc/nmrlayoutmanager.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/nmrlayoutmanager.h Tue May 11 15:57:15 2010 +0300
@@ -19,8 +19,8 @@
#define NMRLAYOUTMANAGER_H
#include <e32base.h>
-#include <aknutils.h>
-#include <aknlayout2scalabledef.h>
+#include <AknUtils.h>
+#include <AknLayout2ScalableDef.h>
namespace NMRLayoutManager
@@ -63,8 +63,6 @@
EMRLayoutCheckboxIcon,
// Option 6
- // TODO: 24h time editor
-
// Option 7
EMRLayoutSingleRowAColumnGraphic,
EMRLayoutSingleRowDColumnGraphic,
--- a/meetingrequest/mrguicommon/src/cesmralarm.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmralarm.cpp Tue May 11 15:57:15 2010 +0300
@@ -17,7 +17,7 @@
#include "cesmralarm.h"
-#include <stringloader.h>
+#include <StringLoader.h>
// DEBUG
#include "emailtrace.h"
--- a/meetingrequest/mrguicommon/src/cesmrconfirmationquery.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrconfirmationquery.cpp Tue May 11 15:57:15 2010 +0300
@@ -22,14 +22,14 @@
//<cmail>
#include "esmrdef.h"
//</cmail>
-#include <aknquerydialog.h>
+#include <AknQueryDialog.h>
#include <bautils.h>
#include <esmrgui.rsg>
#include <eikenv.h>
#include <avkon.rsg>
#include <data_caging_path_literals.hrh>
-#include <stringloader.h>
-#include <aknbiditextutils.h>//line wrapping and mirroring
+#include <StringLoader.h>
+#include <AknBidiTextUtils.h>//line wrapping and mirroring
#include <aknlayoutscalable_apps.cdl.h> //xml layout data for applications
#include <aknlayoutscalable_avkon.cdl.h> //xml layout data of avkon components
#include "esmrhelper.h"//locateresourcefile
--- a/meetingrequest/mrguicommon/src/cesmrcontactlinkiterator.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrcontactlinkiterator.cpp Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
#include "emailtrace.h"
#include "cesmrcontactlinkiterator.h"
-#include <mvpbkcontactlinkarray.h>
+#include <MVPbkContactLinkArray.h>
// ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrguicommon/src/cesmrcontactmanagerhandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrcontactmanagerhandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,11 +19,11 @@
#include "emailtrace.h"
#include "cesmrcontactmanagerhandler.h"
-#include <cvpbkcontactmanager.h>
-#include <cvpbkcontactstoreuriarray.h>
-#include <mvpbkcontactstorelist.h>
-#include <vpbkcontactstoreuris.h>
-#include <tvpbkcontactstoreuriptr.h>
+#include <CVPbkContactManager.h>
+#include <CVPbkContactStoreUriArray.h>
+#include <MVPbkContactStoreList.h>
+#include <VPbkContactStoreUris.h>
+#include <TVPbkContactStoreUriPtr.h>
// ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrguicommon/src/cesmrcontactmenuhandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrcontactmenuhandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -21,17 +21,17 @@
#include "cesmrcontactmenuurlhandler.h"
#include "mmrcontactmenuobserver.h"
-#include <cvpbkcontactmanager.h>
-#include <cvpbkcontactlinkarray.h>
-#include <mvpbkcontactstorelist.h>
-#include <mvpbkcontactstore.h>
-#include <mvpbkcontactstoreproperties.h>
-#include <mvpbkstorecontact.h>
-#include <mvpbkfieldtype.h>
-#include <mvpbkcontactoperationbase.h>
-#include <mvpbkcontactfieldtextdata.h>
-#include <tvpbkfieldversitproperty.h>
-#include <cvpbkfieldtyperefslist.h>
+#include <CVPbkContactManager.h>
+#include <CVPbkContactLinkArray.h>
+#include <MVPbkContactStoreList.h>
+#include <MVPbkContactStore.h>
+#include <MVPbkContactStoreProperties.h>
+#include <MVPbkStoreContact.h>
+#include <MVPbkFieldType.h>
+#include <MVPbkContactOperationBase.h>
+#include <MVPbkContactFieldTextData.h>
+#include <TVPbkFieldVersitProperty.h>
+#include <CVPbkFieldTypeRefsList.h>
//<cmail>
#include "cfsccontactactionservice.h"
@@ -41,9 +41,9 @@
#include "mfsccontactaction.h"
#include "mfsccontactactionmenumodel.h"
-#include <cvpbkfieldtypeiterator.h>
-#include <cvpbkfieldtypeselector.h>
-#include <vpbkeng.rsg>
+#include <CVPbkFieldTypeIterator.h>
+#include <CVPbkFieldTypeSelector.h>
+#include <VPbkEng.rsg>
#include <esmrgui.rsg>
#include "esmrcommands.h"
--- a/meetingrequest/mrguicommon/src/cesmrcontactmenuurlhandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrcontactmenuurlhandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -31,14 +31,14 @@
#include <eikmenup.h>
#include <coemain.h>
#include <gulicon.h>
-#include <aknsutils.h>
+#include <AknsUtils.h>
#include <favouritesdb.h>
#include <apgtask.h>
#include <apgcli.h>
-#include <aknquerydialog.h>
+#include <AknQueryDialog.h>
#include <aknnotewrappers.h>
// for intranet application opening
-#include <aiwservicehandler.h>
+#include <AiwServiceHandler.h>
#include <data_caging_path_literals.hrh>
#include <e32cmn.h>
@@ -201,7 +201,6 @@
//</cmail>
}
- // TODO: correct to use XML layout
NMRBitmapManager::GetSkinBasedBitmapLC(
iconID, iconBitmap, iconMaskBitmap, TSize(20,20) );
--- a/meetingrequest/mrguicommon/src/cesmrglobalnote.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrglobalnote.cpp Tue May 11 15:57:15 2010 +0300
@@ -23,7 +23,7 @@
//<cmail>
#include "esmrdef.h"
//</cmail>
-#include <aknglobalnote.h>
+#include <AknGlobalNote.h>
#include <bautils.h>
#include <esmrgui.rsg>
#include <eikenv.h>
--- a/meetingrequest/mrguicommon/src/cesmrlistquery.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrlistquery.cpp Tue May 11 15:57:15 2010 +0300
@@ -24,10 +24,10 @@
//<cmail>
#include "esmrdef.h"
//</cmail>
-#include <aknpopup.h>
+#include <aknPopup.h>
#include <bautils.h>
#include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <data_caging_path_literals.hrh>
#include "esmrgui.hrh"
@@ -784,7 +784,6 @@
CDesCArrayFlat* itemArray = new(ELeave)CDesCArrayFlat(2);
CleanupStack::PushL(itemArray);
- // Set title: TODO: Change title
popupList->SetTitleL(*StringLoader::LoadLC(
R_QTN_CALENDAR_TASK_CALENDAR_TITLE));
CleanupStack::PopAndDestroy(); // Resource string
--- a/meetingrequest/mrguicommon/src/cesmrrecurrence.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrrecurrence.cpp Tue May 11 15:57:15 2010 +0300
@@ -16,7 +16,7 @@
*/
#include "emailtrace.h"
-#include <stringloader.h>
+#include <StringLoader.h>
#include "cesmrrecurrence.h"
// ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrguicommon/src/cesmrsendui.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrsendui.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,27 +19,25 @@
#include "cesmrsendui.h"
#include "esmrvcalexport.h"
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <eikenv.h>
-#include <msgbiouids.h>
+#include <MsgBioUids.h>
#include <sendui.h>
-#include <tsendingcapabilities.h>
-#include <cmessagedata.h>
-#include <cmessageaddress.h>
-#include <senduiconsts.h>
+#include <TSendingCapabilities.h>
+#include <CMessageData.h>
+#include <CMessageAddress.h>
+#include <SendUiConsts.h>
#include <sysutil.h>
#include <txtrich.h>
#include <calsession.h>
-//<cmail> hardcoded paths removal
#include <pathinfo.h>
-//</cmail>
// Unnamed namespace for local definitions
namespace {
-//<cmail> hardcoded paths removal from cmail
+
_LIT( KVCalAttachmentFile,
"\\private\\10005901\\Calendar.vcs" );
-//</cmail>
+
_LIT( KCalendarDatabaseFilePath, "c:Calendar" );
@@ -186,15 +184,13 @@
User::LeaveIfError( fs.Connect() );
CleanupClosePushL( fs );
// must share the handle between processes
- User::LeaveIfError( fs.ShareProtected() );
- //<cmail> hardcoded paths removal from cmail
+ User::LeaveIfError( fs.ShareProtected() );
TFileName fileName(PathInfo::PhoneMemoryRootPath().Left(2));
fileName.Append(KVCalAttachmentFile);
fs.MkDirAll(fileName);
- //</cmail>
RFile file;
- User::LeaveIfError(file.Replace(//<cmail>
- fs,fileName,EFileWrite | EFileShareAny ));//</cmail>
+ User::LeaveIfError(file.Replace(
+ fs,fileName,EFileWrite | EFileShareAny ));
CleanupClosePushL(file);
TInt spaceNeeded = vcal->Size();
if ( SysUtil::FFSSpaceBelowCriticalLevelL( &fs, spaceNeeded ) )
@@ -205,8 +201,8 @@
User::LeaveIfError(file.Write(*vcal));
- TParse parse;//<cmail>
- User::LeaveIfError(parse.SetNoWild(fileName,//</cmail>
+ TParse parse;
+ User::LeaveIfError(parse.SetNoWild(fileName,
NULL, NULL));
TRAPD(err, DoSendAsAttachmentHandleL(file));
--- a/meetingrequest/mrguicommon/src/cmrimage.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cmrimage.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#include "esmrhelper.h"
#include <esmrgui.mbg>
#include <data_caging_path_literals.hrh>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
// ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrguicommon/src/cmrlabel.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cmrlabel.cpp Tue May 11 15:57:15 2010 +0300
@@ -17,9 +17,9 @@
#include "cmrlabel.h"
#include "nmrcolormanager.h"
-#include <aknutils.h>
-#include <aknsutils.h>
-#include <aknsconstants.h>
+#include <AknUtils.h>
+#include <AknsUtils.h>
+#include <AknsConstants.h>
#include <aknsconstants.hrh>
#include <gdi.h>
--- a/meetingrequest/mrguicommon/src/esmrvcalexport.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/esmrvcalexport.cpp Tue May 11 15:57:15 2010 +0300
@@ -23,11 +23,11 @@
#include <esmrgui.rsg> // r_qtn_meet_req_conflict_unnamed
#include <calentry.h>
-#include <calenexporter.h>
+#include <CalenExporter.h>
#include <bldvariant.hrh> // For FeatureIds
#include <eikenv.h>
#include <featmgr.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <vtoken.h>
#include <s32mem.h>
--- a/meetingrequest/mrguicommon/src/nmrbitmapmanager.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/nmrbitmapmanager.cpp Tue May 11 15:57:15 2010 +0300
@@ -18,9 +18,9 @@
#include "nmrbitmapmanager.h"
#include "esmrhelper.h"
-#include <aknsitemid.h>
-#include <aknutils.h>
-#include <aknsutils.h>
+#include <AknsItemID.h>
+#include <AknUtils.h>
+#include <AknsUtils.h>
#include <esmrgui.mbg>
#include <data_caging_path_literals.hrh>
@@ -153,12 +153,8 @@
}
case EMRBitmapBrowser:
{
- // TODO: not available
- // bitmapStruct.iItemId = KAknsIIDQgnMenuBrowserng;
bitmapStruct.iFallbackIndex = EMbmEsmrguiQgn_menu_browserng;
bitmapStruct.iFallbackMaskIndex = EMbmEsmrguiQgn_menu_browserng_mask;
-
- // TODO: remove me asap
bitmapStruct.iItemId = KAknsIIDQgnMenuIntranet;
break;
}
@@ -186,11 +182,6 @@
case EMRBitmapAlarmClock:
{
bitmapStruct.iItemId = KAknsIIDQgnIndiCalendarClockAlarm;
- // TODO: use new icon
- //bitmapStruct.iFallbackIndex = EMbmEsmrguiQgn_indi_calendar_clock_alarm;
- //bitmapStruct.iFallbackMaskIndex = EMbmEsmrguiQgn_indi_calendar_clock_alarm_mask;
-
- // TODO: remove me asap, not in platform atm.
bitmapStruct.iFallbackIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_alarm;
bitmapStruct.iFallbackMaskIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_alarm_mask;
break;
@@ -420,8 +411,6 @@
bitmapStruct.iFallbackMaskIndex = EMbmEsmrguiQgn_prop_cmail_action_attachment_save_all_mask;
break;
}
-
- // TODO: Needs correct fallbacks
case EMRBitmapInputCenter:
{
bitmapStruct.iItemId = KAknsIIDQsnFrInputCenter;
@@ -484,9 +473,7 @@
bitmapStruct.iFallbackIndex = EMbmEsmrguiQsn_fr_list_corner_br;
bitmapStruct.iFallbackMaskIndex = EMbmEsmrguiQsn_fr_list_corner_br_mask;
break;
- }
-
- // TODO: Needs correct fallbacks
+ }
case EMRBitmapSetOptCenter:
{
bitmapStruct.iItemId = KAknsIIDQsnFrSetOptCenter;
--- a/meetingrequest/mrguicommon/src/nmrcolormanager.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/nmrcolormanager.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,9 +19,9 @@
#include <gdi.h>
#include <eikmfne.h>
-#include <aknsitemid.h>
-#include <aknutils.h>
-#include <aknsutils.h>
+#include <AknsItemID.h>
+#include <AknUtils.h>
+#include <AknsUtils.h>
#include <esmrgui.mbg>
#include <data_caging_path_literals.hrh>
@@ -99,10 +99,7 @@
{
colorStruct.iColorGroup = KAknsIIDFsOtherColors;
colorStruct.iColorIndex = EAknsCIFsOtherColorsCG1;
- // TODO: Once feature confirmed by UI specifier, confirm the
- // correct color
}
- // TODO: For testing purposes only; keep as last item during development
case EMRLastColorItemId:
{
colorStruct.iColorGroup = KAknsIIDQsnTextColors;
--- a/meetingrequest/mrguicommon/src/nmrlayoutmanager.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/nmrlayoutmanager.cpp Tue May 11 15:57:15 2010 +0300
@@ -17,7 +17,7 @@
#include "nmrlayoutmanager.h"
-#include <aknutils.h>
+#include <AknUtils.h>
#include <aknlayoutscalable_apps.cdl.h>
#include <aknlayoutscalable_avkon.cdl.h>
--- a/meetingrequest/mricalviewer/data/2001846B.rss Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/data/2001846B.rss Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
// INCLUDES
#include <ecom/registryinfov2.rh>
-#include <meetingrequestuids.hrh>
+#include <MeetingRequestUids.hrh>
#include "esmrinternaluid.h"
// RESOURCE DEFINITIONS
--- a/meetingrequest/mricalviewer/inc/cesmricalviewerremovemrfromcalcmd.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/inc/cesmricalviewerremovemrfromcalcmd.h Tue May 11 15:57:15 2010 +0300
@@ -25,7 +25,7 @@
#include "mesmricalviewerobserver.h"
#include "esmricalviewerdefs.hrh"
//</cmail>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
class CFSMailClient;
class CESMRUiLauncher;
--- a/meetingrequest/mricalviewer/inc/cesmricalviewerresponsetomrcmd.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/inc/cesmricalviewerresponsetomrcmd.h Tue May 11 15:57:15 2010 +0300
@@ -26,7 +26,7 @@
#include "mesmricalviewercallback.h"
#include "esmricalviewerdefs.hrh"
//</cmail>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
class CFSMailClient;
class CESMRUiLauncher;
--- a/meetingrequest/mricalviewer/src/cesmricalviewercanviewmr.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewercanviewmr.cpp Tue May 11 15:57:15 2010 +0300
@@ -21,8 +21,8 @@
#include "cesmricalviewercanviewmr.h"
//<cmail>
#include "esmricalvieweropcodes.hrh"
-#include "CFSMailCommon.h"
-#include "CFSMailMessage.h"
+#include "cfsmailcommon.h"
+#include "cfsmailmessage.h"
//</cmail>
// ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mricalviewer/src/cesmricalviewercmdhandler.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewercmdhandler.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,7 +29,7 @@
#include <calsession.h>
//<cmail>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
#include "esmricalvieweropcodes.hrh"
#include "esmricalviewerdefs.hrh"
//</cmail>
--- a/meetingrequest/mricalviewer/src/cesmricalvieweremailasynccmd.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalvieweremailasynccmd.cpp Tue May 11 15:57:15 2010 +0300
@@ -23,7 +23,7 @@
//<cmail>
#include "esmricalvieweropcodes.hrh"
#include <calsession.h>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
//</cmail>
#include <calentry.h>
--- a/meetingrequest/mricalviewer/src/cesmricalviewerloadmrdatacmd.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewerloadmrdatacmd.cpp Tue May 11 15:57:15 2010 +0300
@@ -22,7 +22,7 @@
//<cmail>
#include "esmricalvieweropcodes.hrh"
#include <calsession.h>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
//</cmail>
#include "cesmrmrinfoicalretriever.h"
--- a/meetingrequest/mricalviewer/src/cesmricalviewerremovemrfromcalcmd.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewerremovemrfromcalcmd.cpp Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
//<cmail>
#include "esmricalvieweropcodes.hrh"
#include <calsession.h>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
//</cmail>
#include <calentry.h>
--- a/meetingrequest/mricalviewer/src/cesmricalviewerresolvemrmethodasync.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewerresolvemrmethodasync.cpp Tue May 11 15:57:15 2010 +0300
@@ -23,7 +23,7 @@
//<cmail>
#include "esmricalvieweropcodes.hrh"
#include <calsession.h>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
//</cmail>
#include <calentry.h>
--- a/meetingrequest/mricalviewer/src/cesmricalviewerresponsetomrcmd.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewerresponsetomrcmd.cpp Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
//<cmail>
#include "esmricalvieweropcodes.hrh"
#include <calsession.h>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
//</cmail>
#include <calentry.h>
--- a/meetingrequest/mricalviewer/src/cesmrimapicalretriever.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmrimapicalretriever.cpp Tue May 11 15:57:15 2010 +0300
@@ -39,7 +39,7 @@
#include <calentry.h>
#include <caluser.h>
#include <calalarm.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <s32file.h>
#include <eikenv.h>
--- a/meetingrequest/mricalviewer/src/cesmrimapmailfetcher.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmrimapmailfetcher.cpp Tue May 11 15:57:15 2010 +0300
@@ -20,10 +20,10 @@
#include "cesmrimapmailfetcher.h"
#include "esmricalviewerutils.h"
//<cmail>
-#include "CFSMailClient.h"
-#include "CFSMailFolder.h"
-#include "CFSMailMessagePart.h"
-#include "CFSMailCommon.h"
+#include "cfsmailclient.h"
+#include "cfsmailfolder.h"
+#include "cfsmailmessagepart.h"
+#include "cfsmailcommon.h"
#include "esmricalvieweropcodes.hrh"
//</cmail>
--- a/meetingrequest/mricalviewer/src/cesmrmrinfoicalretriever.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmrmrinfoicalretriever.cpp Tue May 11 15:57:15 2010 +0300
@@ -39,7 +39,7 @@
#include <calentry.h>
#include <caluser.h>
#include <calalarm.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <utf.h>
// Unnamed namespace for local definitions and functions
--- a/meetingrequest/mricalviewer/src/cesmruilauncher.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmruilauncher.cpp Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
#include <CalenInterimUtils2.h>
//<cmail>
#include "FreestyleEmailUiConstants.h"
-#include "CFSMailMessage.h"
+#include "cfsmailmessage.h"
#include "fsmtmsuids.h"
#include <coemain.h>
#include <coeaui.h>
--- a/meetingrequest/mricalviewer/src/esmricalviewerutils.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/esmricalviewerutils.cpp Tue May 11 15:57:15 2010 +0300
@@ -74,13 +74,6 @@
FUNC_LOG;
TBool retValue( EFalse );
- // TODO: This needs to be updated
- /*if ( aParams.iAttachmentInfo &&
- aParams.iAttachmentInfo->AttachmentCount() )
- {
- retValue = ETrue;
- } */
-
return retValue;
}
--- a/meetingrequest/mrmbutilsextension/data/2002137D.rss Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrmbutilsextension/data/2002137D.rss Tue May 11 15:57:15 2010 +0300
@@ -16,7 +16,7 @@
*/
#include <ecom/registryinfov2.rh>
-#include <meetingrequestuids.hrh>
+#include <MeetingRequestUids.hrh>
#include "esmrinternaluid.h"
// RESOURCE DEFINITIONS
--- a/meetingrequest/mrmbutilsextension/inc/cmrmbutilsmailboxlistener.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrmbutilsextension/inc/cmrmbutilsmailboxlistener.h Tue May 11 15:57:15 2010 +0300
@@ -18,8 +18,8 @@
#ifndef C_MRMBUTILSMAILBOXLISTENER_H
#define C_MRMBUTILSMAILBOXLISTENER_H
-#include "MFSMailEventObserver.h"
-#include "CFSMailCommon.h"
+#include "mfsmaileventobserver.h"
+#include "cfsmailcommon.h"
#include <e32base.h>
--- a/meetingrequest/mrmbutilsextension/src/cmrmbutilsextensionimpl.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrmbutilsextension/src/cmrmbutilsextensionimpl.cpp Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
#include "cmrmbutilsextensionimpl.h"
#include "cmrmbutilsmailboxlistener.h"
#include "cmrmbutilssettings.h"
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
#include "emailtrace.h"
--- a/meetingrequest/mrmbutilsextension/src/cmrmbutilsmailboxlistener.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrmbutilsextension/src/cmrmbutilsmailboxlistener.cpp Tue May 11 15:57:15 2010 +0300
@@ -17,9 +17,9 @@
//INCLUDE FILES
#include "cmrmbutilsmailboxlistener.h"
-#include "CFSMailCommon.h"
-#include "CFSMailClient.h"
-#include "CFSMailBox.h"
+#include "cfsmailcommon.h"
+#include "cfsmailclient.h"
+#include "cfsmailbox.h"
#include "fsmtmsuids.h"
#include "emailtrace.h"
--- a/meetingrequest/mrmbutilsextension/src/cmrmbutilssettings.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrmbutilsextension/src/cmrmbutilssettings.cpp Tue May 11 15:57:15 2010 +0300
@@ -21,8 +21,8 @@
//
#include "cmrmbutilssettings.h"
#include "mrmbutilsextensioncrkeys.h"
-#include "CFSMailBox.h"
-#include "CFSMailClient.h"
+#include "cfsmailbox.h"
+#include "cfsmailclient.h"
#include "emailtrace.h"
#include <e32std.h>
--- a/meetingrequest/mrpolicy/mrcalentryresolver/data/policies/bccalanniversaryeditor.rss Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrpolicy/mrcalentryresolver/data/policies/bccalanniversaryeditor.rss Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
policy_id = EESMRPolicyAnniversaryEditor;
policy_mode = EESMREditMR;
role_flags = KEESMRFlagOrganizer;
- allowed_app = KEESMRFlagAppEsCalendar; // TODO: Should there be defined a new value for this?
+ allowed_app = KEESMRFlagAppEsCalendar;
field_ids = r_bccal_anniversary_editor_fields;
default_commands = r_bccal_anniversary_editor_def_commands;
additional_commands = 0;
--- a/meetingrequest/mrprocessor/inc/mmrentryprocessor.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrprocessor/inc/mmrentryprocessor.h Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
#define M_MRENTRYPROCESSOR_H
#include <e32base.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
#include "esmrdef.h"
#include "tesmrscenariodata.h"
--- a/meetingrequest/mrprocessor/mrcaleventplugin/inc/cmrcalentry.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrprocessor/mrcaleventplugin/inc/cmrcalentry.h Tue May 11 15:57:15 2010 +0300
@@ -22,7 +22,7 @@
#include <e32base.h>
#include <e32std.h>
#include <caltime.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
#include "mesmrcalentry.h"
class CCalEntry;
--- a/meetingrequest/mrprocessor/mrcaleventplugin/src/cmrcalentry.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrprocessor/mrcaleventplugin/src/cmrcalentry.cpp Tue May 11 15:57:15 2010 +0300
@@ -32,7 +32,7 @@
#include <mrcaleventdata.rsg>
#include <coemain.h>
#include <e32std.h>
-#include <aknutils.h>
+#include <AknUtils.h>
#include <data_caging_path_literals.hrh>
#include <centralrepository.h>
#include <calentry.h>
@@ -41,9 +41,9 @@
#include <calrrule.h>
#include <calinstance.h>
#include <calinstanceview.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
-#include <calendarinternalcrkeys.h>
+#include <CalendarInternalCRKeys.h>
#include <ct/rcpointerarray.h>
#include <calenservices.h>
--- a/meetingrequest/mrprocessor/mrcaleventplugin/src/cmrcaleventprocessor.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrprocessor/mrcaleventplugin/src/cmrcaleventprocessor.cpp Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : ESMR entry processor implementation
-* Version : %version: e002sa33#11 %
+* Version : %version: 11.1.1 %
*
*/
@@ -34,8 +34,8 @@
#include <calrrule.h>
#include <caluser.h>
#include <caltime.h>
-#include <caleninterimutils2.h>
-#include <magnentryui.h>
+#include <CalenInterimUtils2.h>
+#include <MAgnEntryUi.h>
#include <ct/rcpointerarray.h>
/// Unnamed namespace for local definitions
--- a/meetingrequest/mrprocessor/mrprocessorplugin/src/cesmrentryprocessor.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrprocessor/mrprocessorplugin/src/cesmrentryprocessor.cpp Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description : ESMR entry processor implementation
-* Version : %version: e002sa33#14 %
+* Version : %version: 14.1.1 %
*
*/
@@ -37,9 +37,9 @@
#include <calrrule.h>
#include <caluser.h>
#include <caltime.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <cmrmailboxutils.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
#include <ct/rcpointerarray.h>
/// Unnamed namespace for local definitions
--- a/meetingrequest/mrtasks/mrtaskplugin/group/mrtaskplugin.mmp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/group/mrtaskplugin.mmp Tue May 11 15:57:15 2010 +0300
@@ -59,8 +59,6 @@
APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE /epoc32/include/ecom //TODO: Remove when Cmail headers are fixed
-
LIBRARY esmrcommon.lib
LIBRARY esmrservices.lib
LIBRARY mrguicommon.lib
--- a/meetingrequest/mrtasks/mrtaskplugin/inc/cesmrfsemailmanager.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/inc/cesmrfsemailmanager.h Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
#include <e32base.h>
//<cmail>
-#include "CFSMailCommon.h"
+#include "cfsmailcommon.h"
#include "mmrinfoprocessor.h"
#include "esmrdef.h"
//</cmail>
--- a/meetingrequest/mrtasks/mrtaskplugin/src/cesmrfsemailmanager.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/src/cesmrfsemailmanager.cpp Tue May 11 15:57:15 2010 +0300
@@ -22,13 +22,13 @@
#include <apgcli.h>
#include <apmrec.h>
//<cmail>
-#include "CFSMailClient.h"
-#include "CFSMailBox.h"
-#include "CFSMailMessage.h"
-#include "CFSMailMessagePart.h"
+#include "cfsmailclient.h"
+#include "cfsmailbox.h"
+#include "cfsmailmessage.h"
+#include "cfsmailmessagepart.h"
#include "mmrinfoprocessor.h"
-#include "CFSMailCommon.h"
-#include "CFSMailPlugin.h"
+#include "cfsmailcommon.h"
+#include "cfsmailplugin.h"
//</cmail>
#include <ecom/implementationinformation.h>
#include "tesmrinputparams.h"
--- a/meetingrequest/mrtasks/mrtaskplugin/src/cesmrmailplaitextformatter.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/src/cesmrmailplaitextformatter.cpp Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
#include <esmrtasks.rsg>
#include <cmrmailboxutils.h>
-#include <stringloader.h>
+#include <StringLoader.h>
#include <calentry.h>
#include <caluser.h>
#include <avkon.rsg>
--- a/meetingrequest/mrtasks/mrtaskplugin/src/cesmrsendmrfsmailreplytask.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/src/cesmrsendmrfsmailreplytask.cpp Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
#include <cmrmailboxutils.h>
#include <calentry.h>
//<cmail>
-#include "CFSMailMessage.h"
+#include "cfsmailmessage.h"
#include <coemain.h>
#include <coeaui.h>
#include "FreestyleEmailUiConstants.h"
--- a/meetingrequest/mrtasks/mrtaskplugin/src/cesmrsendmrfsmailtask.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/src/cesmrsendmrfsmailtask.cpp Tue May 11 15:57:15 2010 +0300
@@ -16,8 +16,8 @@
*/
-#include "emailtrace.h"
#include "cesmrsendmrfsmailtask.h"
+
#include "cesmrcaldbmgr.h"
#include "mesmrmeetingrequestentry.h"
#include "cesmrfsemailmanager.h"
@@ -26,8 +26,7 @@
#include "cesmrcaluserutil.h"
#include "cesmrguilistquery.h"
#include "esmrhelper.h"
-
-
+#include "cesmrfsmailboxutils.h"
#include <coemain.h>
#include <utf.h>
@@ -37,7 +36,8 @@
#include <calentry.h>
#include <calentryview.h>
#include <calattachment.h>
-#include <cesmrfsmailboxutils.h>
+
+#include "emailtrace.h"
// Unnamed namespace for local definitions
--- a/meetingrequest/mrtasks/mrtaskplugin/src/cmrtaskplugin.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/src/cmrtaskplugin.cpp Tue May 11 15:57:15 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-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"
@@ -35,10 +35,10 @@
#include "esmrconfig.hrh"
#include "cesmrcaldbmgr.h"
//<cmail>
-#include "CFSMailCommon.h"
-#include "CFSMailClient.h"
-#include "CFSMailMessage.h"
-#include "CFSMailBox.h"
+#include "cfsmailcommon.h"
+#include "cfsmailclient.h"
+#include "cfsmailmessage.h"
+#include "cfsmailbox.h"
//</cmail>
@@ -104,7 +104,7 @@
// Queries response query from user.
// ---------------------------------------------------------------------------
//
-HBufC* QuerySendResponseQueryFromUserLC(
+HBufC* QuerySendResponseQueryFromUserL(
TESMRCommand aCommand,
TESMRResponseType& aResponseType,
MESMRMeetingRequestEntry& aEntry )
@@ -177,7 +177,7 @@
CESMRResponseDialog::NewL( responseMessage );
CleanupStack::PushL( respDlg );
- TBool dialogRetValue( respDlg->ExecuteDlgLD() );
+ TInt dialogRetValue( respDlg->ExecuteDlgLD() );
// Dialog has deleted itself --> Only pop from cleanup stack
CleanupStack::Pop( respDlg );
@@ -186,15 +186,23 @@
aEntry.Entry().SetStatusL( CCalEntry::ETentative );
User::Leave( KErrCancel );
}
- }
- if ( responseMessage )
- {
- CleanupStack::PushL( responseMessage );
+ else if ( dialogRetValue == EAknCmdExit )
+ {
+ aResponseType = EESMRResponseDontSend;
+ }
+ else if ( !responseMessage
+ && dialogRetValue == EESMRCmdSendMR )
+ {
+ // Send command is triggered but response is empty
+ aResponseType = EESMRResponsePlain;
+ responseMessage = KNullDesC().AllocL();
+ }
}
else
- {
- responseMessage = KNullDesC().AllocLC();
- }
+ {
+ responseMessage = KNullDesC().AllocL();
+ }
+
return responseMessage;
}
@@ -249,7 +257,7 @@
MESMRMeetingRequestEntry& mrEntry =
static_cast< MESMRMeetingRequestEntry& >( aEntry );
-
+
switch (aCommand)
{
case EESMRCmdAcceptMR:
@@ -291,7 +299,7 @@
case EESMRCmdCalendarChange:
task = CreateMoveMRToCurrentDBTaskL( mrEntry );
break;
-
+
default:
__ASSERT_DEBUG(EFalse, Panic(EESMRTaskFactoryInvalidTask) );
User::Leave( KErrNotSupported );
@@ -314,7 +322,7 @@
CESMRCombinedTask* task = NULL;
TESMRRole role = aEntry.RoleL();
-
+
TBool syncObjectPresent( aEntry.IsSyncObjectPresent() );
TBool isStored( aEntry.IsStoredL() );
@@ -328,52 +336,60 @@
CleanupStack::PushL( task );
TESMRResponseType responseType( EESMRResponsePlain );
- HBufC* responseMessage = QuerySendResponseQueryFromUserLC(
+ HBufC* responseMessage = QuerySendResponseQueryFromUserL(
aCommand,
responseType,
aEntry );
-
- if ( !syncObjectPresent && EESMRCmdDeclineMR != aCommand)
- {
- // Entry is stored or deleted from calendar DB if
- // sync object is not present
- // Store MR task
- AppendTaskL( *task,
- CESMRStoreMRTask::NewL(
- iCalDbMgr,
- aEntry,
- aEntry.MailboxUtils() ) );
- }
+
+ // If response message is NULL, it means that user
+ // has cancelled response editing and wants to only exit
+ // application
+ if( responseMessage )
+ {
+ CleanupStack::PushL( responseMessage );
+
+ if ( !syncObjectPresent && EESMRCmdDeclineMR != aCommand)
+ {
+ // Entry is stored or deleted from calendar DB if
+ // sync object is not present
+ // Store MR task
+ AppendTaskL( *task,
+ CESMRStoreMRTask::NewL(
+ iCalDbMgr,
+ aEntry,
+ aEntry.MailboxUtils() ) );
+ }
- if ( EESMRResponseDontSend != responseType ||
- aEntry.IsSyncObjectPresent() )
- {
- // Send MR response via mail freestyle task
- AppendTaskL( *task,
- CESMRSendMRRespFSMailTask::NewL(
- aCommand,
- iCalDbMgr,
- aEntry,
- aEntry.MailboxUtils(),
- responseType,
- *responseMessage ) );
- }
- CleanupStack::PopAndDestroy( responseMessage );
-
- if ( !syncObjectPresent && EESMRCmdDeclineMR == aCommand &&
- isStored )
- {
- // Entry is deleted from calendar DB if
- // sync object is not present and entry exits in database
- // Declined --> Delete MR from cal DB task
- AppendTaskL( *task,
- CESMRDeleteMRFromDbTask::NewL(
- iCalDbMgr,
- aEntry,
- aEntry.MailboxUtils() ) );
- }
+ if ( EESMRResponseDontSend != responseType )
+ {
+ // Send MR response via mail freestyle task
+ AppendTaskL( *task,
+ CESMRSendMRRespFSMailTask::NewL(
+ aCommand,
+ iCalDbMgr,
+ aEntry,
+ aEntry.MailboxUtils(),
+ responseType,
+ *responseMessage ) );
+ }
+
+ CleanupStack::PopAndDestroy( responseMessage );
- CleanupStack::Pop( task );
+ if ( !syncObjectPresent && EESMRCmdDeclineMR == aCommand &&
+ isStored )
+ {
+ // Entry is deleted from calendar DB if
+ // sync object is not present and entry exits in database
+ // Declined --> Delete MR from cal DB task
+ AppendTaskL( *task,
+ CESMRDeleteMRFromDbTask::NewL(
+ iCalDbMgr,
+ aEntry,
+ aEntry.MailboxUtils() ) );
+ }
+ }
+
+ CleanupStack::Pop( task );
}
else
{
@@ -417,7 +433,7 @@
aCommand == EESMRCmdSendMRUpdate )
{
// Send MR response via mail task
- AppendTaskL( *task,
+ AppendTaskL( *task,
CESMRSendMRFSMailTask::NewL(
iCalDbMgr,
aEntry,
@@ -562,7 +578,7 @@
if ( aEntry.AttendeeCountL( attendeeFlags ) && aEntry.IsSentL()
&& !aEntry.OccursInPastL() )
{
- // if enrey doesn't need to send canellation, don't query
+ // If entry doesn't need to send cancellation, don't query
if( aEntry.SendCanellationAvailable())
{
// Meeting request contains attendees --> Cancellation message
@@ -697,14 +713,14 @@
__ASSERT_DEBUG( EFalse, Panic( EESMRTaskFactoryIllegalTask ) );
User::Leave( KErrNotSupported );
}
-
+
// Create combined task
CESMRCombinedTask* task = CESMRCombinedTask::NewL(
aEntry,
CESMRCombinedTask::EESMRTrap );
-
+
CleanupStack::PushL( task );
-
+
if ( !aEntry.IsOpenedFromMail() )
{
// When deleting from the calendar --> Store first modifying entry
@@ -720,7 +736,7 @@
aEntry,
aEntry.MailboxUtils() ) );
}
-
+
// Delete entry from old db
AppendTaskL(
*task,
@@ -728,7 +744,7 @@
iCalDbMgr,
aEntry,
aEntry.MailboxUtils() ) );
-
+
// Store entry to current db
AppendTaskL(
*task,
@@ -736,7 +752,7 @@
iCalDbMgr,
aEntry,
aEntry.MailboxUtils() ) );
-
+
CleanupStack::Pop( task );
return task;
}
--- a/meetingrequest/mrurlparserplugin/group/esmrurlparserplugin.mmp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrurlparserplugin/group/esmrurlparserplugin.mmp Tue May 11 15:57:15 2010 +0300
@@ -44,7 +44,7 @@
LIBRARY ecom.lib
LIBRARY eposlandmarks.lib
LIBRARY lbs.lib
-LIBRARY CommonEngine.lib
+LIBRARY commonengine.lib
LIBRARY calinterimapi.lib
LIBRARY inetprotutil.lib
--- a/meetingrequest/mrurlparserplugin/src/cesmrurlparserpluginimpl.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrurlparserplugin/src/cesmrurlparserpluginimpl.cpp Tue May 11 15:57:15 2010 +0300
@@ -25,7 +25,7 @@
#include <EPos_CPosLandmarkParser.h>
#include <EPos_CPosLmOperation.h>
#include <lbsposition.h>
-#include <EscapeUtils.h>
+#include <escapeutils.h>
#include <finditemengine.h>
#include <calentry.h>
--- a/meetingrequest/mrutils/inc/cesmrutils.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrutils/inc/cesmrutils.h Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
// INCLUDE FILES
#include <e32base.h>
-#include <cmrutils.h>
+#include <CMRUtils.h>
#include "esmrdef.h"
// FORWARD DECLARATIONS
--- a/meetingrequest/mrutils/inc/esmrutilsapiext.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrutils/inc/esmrutilsapiext.h Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
#ifndef ESMRUTILSAPIEXT_H
#define ESMRUTILSAPIEXT_H
-#include <cmrutils.h>
+#include <CMRUtils.h>
/**
* Extension API query function.
--- a/meetingrequest/mrutilscalplugin/data/2001E27F.rss Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrutilscalplugin/data/2001E27F.rss Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
// INCLUDES
#include <ecom/registryinfov2.rh>
-#include <meetingrequestuids.hrh>
+#include <MeetingRequestUids.hrh>
#include "esmrinternaluid.h"
// RESOURCE DEFINITIONS
--- a/meetingrequest/mrutilscalplugin/inc/cesmrutilsimpl.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrutilscalplugin/inc/cesmrutilsimpl.h Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
#define CESMRUTILSIMPL_H
// INCLUDE FILES
-#include <cmrutils.h>
+#include <CMRUtils.h>
// FORWARD DECLARATIONS
class CESMRUtils;
--- a/meetingrequest/mrviewer/inc/cesmrviewerctrl.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewer/inc/cesmrviewerctrl.h Tue May 11 15:57:15 2010 +0300
@@ -20,8 +20,8 @@
#define CESMRVIEWERCTRL_H
// INCLUDES
-#include <magnentryui.h>
-#include <cmrutils.h>
+#include <MAgnEntryUi.h>
+#include <CMRUtils.h>
#include <e32base.h>
#include "mmrinfoprovider.h"
--- a/meetingrequest/mrviewer/src/cesmrviewerctrl.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewer/src/cesmrviewerctrl.cpp Tue May 11 15:57:15 2010 +0300
@@ -48,7 +48,7 @@
// From System
//<cmail>
-#include <cmrutils.h>
+#include <CMRUtils.h>
#include "esmrutilsapiext.h"
//</cmail>
#include <msvstd.h>
@@ -59,7 +59,7 @@
#include <eikappui.h>
#include <eikenv.h>
#include <calentry.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
#include <calcommon.h>
// CONSTANTS
@@ -618,7 +618,7 @@
case EESMRCmdCalEntryUISend: // Send calendar entry item
case EESMRCmdCalEntryUIAddParticipants: // Add participants to meeting item
{
- ASSERT( EFalse ); // TODO: implement when tasks are ready
+ ASSERT( EFalse );
}
break;
--- a/meetingrequest/mrviewercalplugin/data/2001E27E.rss Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewercalplugin/data/2001E27E.rss Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
// INCLUDES
#include <ecom/registryinfov2.rh>
-#include <meetingrequestuids.hrh>
+#include <MeetingRequestUids.hrh>
#include "esmrinternaluid.h"
// RESOURCE DEFINITIONS
--- a/meetingrequest/mrviewercalplugin/inc/caleneditorsplugin.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewercalplugin/inc/caleneditorsplugin.h Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
#include <e32base.h>
#include <ecom/ecom.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
/**
* Resolver for loading correct ECOM Implementation for
--- a/meetingrequest/mrviewercalplugin/inc/cesmrviewersimpl.h Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewercalplugin/inc/cesmrviewersimpl.h Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
#define CESMRVIEWERSIMPL_H
// INCLUDES
-#include <cmrviewers.h>
+#include <CMRViewers.h>
#include <e32base.h>
// FORWARD DECLARATIONS
--- a/meetingrequest/mrviewercalplugin/src/cesmrviewersimpl.cpp Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewercalplugin/src/cesmrviewersimpl.cpp Tue May 11 15:57:15 2010 +0300
@@ -29,7 +29,7 @@
// From MR Mailbox Utils
#include <cmrmailboxutils.h>
-#include <cmrutils.h>
+#include <CMRUtils.h>
// From System
#include <coemain.h>