diff -r 6b8f3b30d0ec -r efd4f1afd43e emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h --- a/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h Wed Jun 09 09:22:57 2010 +0300 +++ b/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h Mon Jun 21 15:20:54 2010 +0300 @@ -82,6 +82,7 @@ class CEUiEmailListTouchManager; class MFSMailIterator; class CAknStylusPopUpMenu; +class CFSEmailUiGenericTimer; template struct TDeleteTask; /** @@ -141,6 +142,10 @@ }; public: + /** + * + */ + static CMailListModelUpdater* NewL(); /** * Constructor @@ -162,7 +167,7 @@ /** * Update model. */ - void UpdateModelL(MObserver& aObserver, MFSMailIterator* aIterator); + void UpdateModelL(MObserver& aObserver, MFSMailIterator* aIterator, TInt aBlockSize); /** * Returns ETrue if updating. @@ -180,6 +185,10 @@ * @see CActive::DoCancel */ void DoCancel(); + /** + * @see CActive::RunError + */ + TInt RunError(TInt aError); private: @@ -207,6 +216,8 @@ * Reset to uninitialized state. */ void Reset(); +private: + void ConstructL(); private: @@ -218,6 +229,7 @@ MFSMailIterator* iIterator; TFsTreeItemId iParentId; TInt iBlockSize; + RTimer iTimer; }; struct SMailListItem @@ -264,7 +276,8 @@ public MFsTreeListObserver, public MFSEmailUiContactHandlerObserver, public CMailListModelUpdater::MObserver, - public MEmailMailboxState + public MEmailMailboxState, + public MFSEmailUiGenericTimerCallback // { friend class CMailListUpdater; @@ -449,6 +462,15 @@ // check from settings if manual or auto sync TBool CheckAutoSyncSettingL(); +public: // from MFSEmailUiGenericTimerCallback + + /** + * From MFSEmailUiGenericTimerCallback. + * Generic timer event callback. + * Handles insertion of new mails into mail list. + */ + void TimerEventL( CFSEmailUiGenericTimer* aTriggeredTimer ); + private: // from /** @@ -522,9 +544,11 @@ void UpdateCancelled(const TBool aForceRefresh); // Mail model update - void UpdateMailListModelAsyncL(); + void SortMailListModelAsyncL(); + TBool UpdateMailListModelAsyncL(TInt aBlockSize); void UpdateMailListModelL(); void CreateModelItemsL( RPointerArray& aMessages ); + void DeleteSortWaitNote(); // Create title divider model item for the given message. Separator text depends on active sorting mode. CFSEmailUiMailListModelItem* CreateSeparatorModelItemLC( CFSMailMessage& aMessage ) const; @@ -912,7 +936,17 @@ TPoint iMarkingModeTextPos; TSize iMarkingModeTextSize; TRect iMarkingModeTextRect; - }; + CAknWaitDialog* iSortWaitNote; + // timer generates events for inserting new mails into mail list + CFSEmailUiGenericTimer* iNewMailTimer; + // array keeps IDs of new mails which should be added into mail list + RArray iNewMailIds; + + // skin text colors for the list items + TRgb iFocusedTextColor; + TRgb iNormalTextColor; + TRgb iNodeTextColor; + }; // Definition of the mail updater timer. This timer is used for