# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1271249757 -10800 # Node ID 21239b3bcd781df8664d84c10ef3f4d047fd5ec3 # Parent 1984aceb8774e378f7824934d9043e76b0237635 Revision: 201013 Kit: 201015 diff -r 1984aceb8774 -r 21239b3bcd78 alarmui/src/alarmutils.cpp --- a/alarmui/src/alarmutils.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/alarmui/src/alarmutils.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -48,6 +48,7 @@ #include #include // KUidAgendaModelAlarmCategory - the alarm category id for calendar alarms #include +#include #ifndef SYMBIAN_CALENDAR_V2 #include // deprecated, use CalAlarm.h when SYMBIAN_CALENDAR_V2 flag is enabled @@ -960,12 +961,20 @@ void CAlarmUtils::DeviceShutdown() { TRACE_ENTRY_POINT; - iShutdownTimer->Cancel(); - if( StarterConnect() ) - { - iStarter.Shutdown(); - iStarter.Close(); - } + + // charging state added for the err EMDN-835CW2. + TInt chargingState; + RProperty::Get( KPSUidHWRMPowerState, KHWRMChargingStatus , chargingState ); + + if( IsDeviceInAlarmState() && ( chargingState != EChargingStatusCharging ) ) + { + iShutdownTimer->Cancel(); + if( StarterConnect() ) + { + iStarter.Shutdown(); + iStarter.Close(); + } + } TRACE_EXIT_POINT; } diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/commonutils/src/calenentryutil.cpp --- a/calendarui/commonutils/src/calenentryutil.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/commonutils/src/calenentryutil.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -1015,7 +1015,7 @@ if( aStartTime == CalenDateUtils::BeginningOfDay( aStartTime ) && aStopTime == CalenDateUtils::BeginningOfDay( aStopTime ) - && aStartTime != aStopTime && differenceInTime.Int() == 1) // fix for AllDayEntry issue + && aStartTime != aStopTime && differenceInTime.Int() >= 1) // fix for AllDayEntry issue { allDayEvent = ETrue; } diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/commonutils/src/calenviewutils.cpp --- a/calendarui/commonutils/src/calenviewutils.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/commonutils/src/calenviewutils.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -215,7 +215,7 @@ if( startLocalTime != stopLocalTime && startLocalTime == CalenDateUtils::BeginningOfDay( startLocalTime ) && stopLocalTime == CalenDateUtils::BeginningOfDay( stopLocalTime ) && - startLocalTime != stopLocalTime && differenceInTime.Int() == 1 ) // fix for AllDayEntry issue + startLocalTime != stopLocalTime && differenceInTime.Int() >= 1 ) // fix for AllDayEntry issue { allDayEvent = ETrue; } diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/group/calencontroller.mmp --- a/calendarui/controller/group/calencontroller.mmp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/group/calencontroller.mmp Wed Apr 14 15:55:57 2010 +0300 @@ -54,7 +54,6 @@ SOURCE calencmdlineparser.cpp SOURCE calencmdlinelauncher.cpp SOURCE calencontroller.cpp -SOURCE calendbchangenotifier.cpp SOURCE calendebug.cpp SOURCE calendeleteui.cpp SOURCE caleneditui.cpp diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/inc/calendbchangenotifier.h --- a/calendarui/controller/inc/calendbchangenotifier.h Wed Mar 31 21:29:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -/* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Notifies observers of external changes to the calendar database -* -*/ - - -#ifndef __CALENDBCHANGENOTIFIER_H -#define __CALENDBCHANGENOTIFIER_H - -// INCLUDES -#include - -#include //MCalChangeCallBack - -// FORWARD DECLARATIONS -class CCalSession; //Calendar session -class CCalenGlobalData; //Calendar global data - -// CLASS DECLARATION - -/** -* Observer class for database changes. Forwards callback from -* MCalChangeCallBack2 -*/ -class MCalenDBChangeObserver - { - public: - virtual void HandleDBChangeL() = 0; - }; - -/** -* CCalenDbChangeNotifier buffers notifications from MCalChangeCallBack2 and -* only notifies its observers after a set period has elapsed. This prevents -* Calendar views refreshing more often than necessary during a sync operation -*/ -NONSHARABLE_CLASS(CCalenDbChangeNotifier) : public CActive, - public MCalChangeCallBack2 - { - public: // Constructors and destructor - /** - * Constructor. - * @param aGlobalData global data reference - * @return a pointer to the new CCalenDbChangeNotifier instance - */ - static CCalenDbChangeNotifier* NewL( CCalenGlobalData& aGlobalData ); - - /** - * Destructor. - */ - ~CCalenDbChangeNotifier(); - - public: - /** - * Allow CCalenViews to register for database change notifications - * @param aDBObserver Observer to register - */ - void RegisterObserverL( MCalenDBChangeObserver& aDBObserver ); - - /** - * Allow CCalenViews to deregister for database change notifications - * @param aDBObserver Observer to deregister - */ - void DeRegisterObserverL( MCalenDBChangeObserver& aDBObserver ); - - /** - * Returns the time of the last call to MCalChangeCallBack2::CalChangeNotification - * This is not necessarily the same time as the last notification issued by - * this class - * @return Time of the last database modification as TTime - */ - TTime LastDBModificationTime() const; - - public: - /** - * From MCalChangeCallBack2 - * Called when the calendar database is changed through another - * CCalSession - * @param aChangeItems array of database items changed - */ - void CalChangeNotification( RArray& aChangeItems ); - - private: - /** - * C++ default constructor. - * @param aGlobalData global data reference - */ - CCalenDbChangeNotifier( CCalenGlobalData& aGlobalData ); - - /** - * By default Symbian 2nd phase constructor is private. - * Performs any construction which may leave - */ - void ConstructL(); - - /** - * From CActive - * Called when outstanding asynchronous request completes - * This will be called when iNotificationTimer either completes - * or is cancelled - */ - void RunL(); - - /** - * From CActive - * Called by the active scheduler if RunL leaves - * Ensures we are ready to receive the next database event - * @param aError System wide error code - */ - TInt RunError( TInt aError ); - - /** - * From CActive - * Implements cancellation of outstanding asynchronous requests - * Cancels iNotificationTimer if started - */ - void DoCancel(); - - private: // Data - CCalenGlobalData& iGlobalData; - - //Database change observer filter - CCalChangeNotificationFilter* iCalChangeFilter; - - //Observer array - RPointerArray iDBObservers; - - //Timer to limit the amount of notifications issued by this class - RTimer iNotificationTimer; - - //The time of the last received notification - TTime iLastDbChangeNotification; - - //Flag to restart the timer after cancelling last tiemr request - TBool iRestartTimer; - }; - -#endif // __CALENDBCHANGENOTIFIER_H - -// End of File diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/inc/calenmultipledbui.h --- a/calendarui/controller/inc/calenmultipledbui.h Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/inc/calenmultipledbui.h Wed Apr 14 15:55:57 2010 +0300 @@ -245,12 +245,23 @@ CCalCalendarInfo& aCalendarInfoModified); /* - * Async exit for the dialog + * Callback for CAsyncCallBack class + * @param aThisPtr* this pointer. + * @return TInt status. */ - static TInt DoAsyncExit(TAny* aPtr); + static TInt AsyncCallBackL(TAny* aThisPtr); - static TInt DoAsyncDeleteTemL(TAny* aPtr); + /* + * Async method to handle all async commnds + * @param aCommand Async command + */ + void HandleAsyncCommandL(const TInt aCommand); + /* + * Async method to handle all async commnds + * @param aCommand Async command + */ + void DoAsyncActionL(const TInt aCommand); /* * @brief Creates button for the toolbar. @@ -277,6 +288,12 @@ * Refocus the items in list when delete action happened. */ void ReAdjustListItemFocusL(const TInt aCurrentIndex); + + /** + * From CCoeControl Gets help context + * @param aContext Help context + */ + void GetHelpContext(TCoeHelpContext& aContext) const; public: // from MCalenNotificationHandler /** @@ -319,9 +336,6 @@ RArray iIconIndices; CAknIconArray* iIconList; RArray iColorUidArray; - CAsyncCallBack* iAsyncExit; - CAsyncCallBack* iAsyncDeletequery; - TInt iAsyncExitCmd; CCalenMultiDBEditor* iDbEditor;//Not not owned TBool iConflictOccured; TBool iIsDbEditorOpen ; @@ -329,6 +343,10 @@ CCalCalendarInfo* iCalendarInfoNew; CCalCalendarInfo* iCalendarInfoOriginal; CCalCalendarInfo* iCalendarInfoEdited; + + CAsyncCallBack* iAsyncAction; + TInt iAsyncActionCmd; + TInt iCurrentIndex; }; diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/inc/calennotifier.h --- a/calendarui/controller/inc/calennotifier.h Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/inc/calennotifier.h Wed Apr 14 15:55:57 2010 +0300 @@ -34,7 +34,6 @@ // FORWARD DECLARATIONS class CCalenGlobalData; // Calendar global data singleton class CEnvironmentChangeNotifier; // Receive system event notifications -class CCalenDbChangeNotifier; // Receive database change notifications class CCalenEComWatcher; // Receives Ecom registry change notifications class CCalenSetting; // Calendar settings class CCalenController; @@ -251,7 +250,6 @@ RArray iBroadcastQueue; TBool iBroadcastActive; - CCalenDbChangeNotifier* iDbChangeNotifier; CCalenSetting* iSetting; TBool iIsSettingsBroadcastDeferred; TBool iSettingsNeedsBroadcast; diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/inc/calentoolbarimpl.h --- a/calendarui/controller/inc/calentoolbarimpl.h Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/inc/calentoolbarimpl.h Wed Apr 14 15:55:57 2010 +0300 @@ -140,6 +140,11 @@ */ void ResetToolbarExtensionCommandsL(); + inline TBool IsICalenToolBar() + { + return iCalenToolbar ? ETrue : EFalse; + } + private: /** diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/inc/calenviewattachmentsdialog.h --- a/calendarui/controller/inc/calenviewattachmentsdialog.h Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/inc/calenviewattachmentsdialog.h Wed Apr 14 15:55:57 2010 +0300 @@ -370,6 +370,7 @@ CCalenController& iController; CDocumentHandler* iDocHandler; const TDesC& iNewTitle; + TBool iEmbeddedFileOpened; // Internal status flags diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/src/calenattachmentui.cpp --- a/calendarui/controller/src/calenattachmentui.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/src/calenattachmentui.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -745,7 +745,8 @@ // Hide the toolbar before we display settings menu MCalenToolbar* toolbar = iController.Services().ToolbarOrNull(); - if(toolbar&&toolbar->IsVisible()) + + if(toolbar&&toolbar->IsVisible()&& !iController.IsEditorActive()) { toolbar->SetToolbarVisibilityL(EFalse); iShowToolbar = ETrue; diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/src/calencmdlinelauncher.cpp --- a/calendarui/controller/src/calencmdlinelauncher.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/src/calencmdlinelauncher.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -508,6 +508,12 @@ } } } + else if(iIsExitOnDlgClose && (aNotification == ECalenNotifyDialogClosed) ) + { + //dont do any thing + //This scenario hits, when the application launched from device search application, + //User issued a "Cancel" command while adding attachment. + } else if(aNotification == ECalenNotifyEntryClosed) { // Exit when Escape pressed in Eventview diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/src/calencontroller.cpp --- a/calendarui/controller/src/calencontroller.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/src/calencontroller.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -163,7 +163,7 @@ iNotifier = new( ELeave )CCalenNotifier( *this ); // Get an instance of the global data - iGlobalData = CCalenGlobalData::NewL( *iNotifier, iNotifier ); + iGlobalData = CCalenGlobalData::NewL( *iNotifier, iNotifier, iNotifier ); iGlobalData->InitializeGlobalDataL(); RArray notificationArray; diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/src/calendbchangenotifier.cpp --- a/calendarui/controller/src/calendbchangenotifier.cpp Wed Mar 31 21:29:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,287 +0,0 @@ -/* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Notifies observers of external changes to the calendar database -* -*/ - - - -//debug -#include "calendarui_debug.h" - -// INCLUDE FILES -#include "calendbchangenotifier.h" // CCalenDbChangeNotifier -#include "calenglobaldata.h" // Calendar global data -#include // CalSession - -// ----------------------------------------------------------------------------- -// KTimerResolution limits the number of notifications sent to registered -// MCalenDBChangeObserver instances. Notifications may come from -// MCalChangeCallBack2 at a very high rate which could impact performance, -// for example by causing constant view refreshes. -// CCalenDbChangeNotifier notifies observers when KTimerResolution has elapsed -// since the last notification was received from MCalChangeCallBack2 -// ----------------------------------------------------------------------------- -const TInt KTimerResolution = 1000000; // 1 Second - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::CCalenDbChangeNotifier -// C++ default constructor can NOT contain any code, that might leave. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -CCalenDbChangeNotifier::CCalenDbChangeNotifier( CCalenGlobalData& aGlobalData ) - : CActive( EPriorityNormal ), - iGlobalData( aGlobalData ) - { - TRACE_ENTRY_POINT; - - iRestartTimer = EFalse; - - TRACE_EXIT_POINT; - } - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::NewL -// Two-phased constructor. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -CCalenDbChangeNotifier* CCalenDbChangeNotifier::NewL( CCalenGlobalData& aGlobalData ) - { - TRACE_ENTRY_POINT; - - CCalenDbChangeNotifier* self = new( ELeave ) CCalenDbChangeNotifier( aGlobalData ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - TRACE_EXIT_POINT; - return self; - } - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::ConstructL -// Symbian 2nd phase constructor can leave. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CCalenDbChangeNotifier::ConstructL() - { - TRACE_ENTRY_POINT; - - // We want to receive notifications for the full agenda date range - TCalTime start, end; - start.SetTimeUtcL( TCalTime::MinTime() ); - end.SetTimeUtcL( TCalTime::MaxTime() ); - CalCommon::TCalTimeRange range( start, end ); - - // Create a notification filter - iCalChangeFilter = CCalChangeNotificationFilter::NewL( - MCalChangeCallBack2::EChangeEntryAll, - ETrue, - range ); - - // Enable database change notifications on current global data session - iGlobalData.CalSessionL().StartChangeNotification( *this, *iCalChangeFilter ); - - // Create a timer to limit the number of notifications broadcast - iNotificationTimer.CreateLocal(); - - // Active object, add to active scheduler - CActiveScheduler::Add( this ); - - TRACE_EXIT_POINT; - } - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::~CCalenDbChangeNotifier -// Destructor -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -CCalenDbChangeNotifier::~CCalenDbChangeNotifier() - { - TRACE_ENTRY_POINT; - - Cancel(); - // Reset the observer array. Array contents are NOT owned by this class - iDBObservers.Reset(); - - iNotificationTimer.Close(); - - // Disable database change notifications on current global data session - PIM_TRAPD_HANDLE( iGlobalData.CalSessionL().StopChangeNotification() ); - - // Destroy the notification filter - delete iCalChangeFilter; - - TRACE_EXIT_POINT; - } - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::LastDBModificationTime -// Returns the time of the last database change notification. This may not be -// the time of the last notification sent to MCalenDBChangeObservers. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -TTime CCalenDbChangeNotifier::LastDBModificationTime() const - { - TRACE_ENTRY_POINT; - - TRACE_EXIT_POINT; - return iLastDbChangeNotification; - } - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::CalChangeNotification -// Called when a change to the agenda database occurs from a different session -// to the one we are currently using. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CCalenDbChangeNotifier::CalChangeNotification( RArray& /*aChangeItems*/ ) - { - TRACE_ENTRY_POINT; - - // Always update the last notification time, even if we don't notify - // our observers - iLastDbChangeNotification.UniversalTime(); - if( !IsActive() ) - { - iNotificationTimer.After( iStatus, KTimerResolution ); - SetActive(); - } - else - { - iRestartTimer = ETrue; - iNotificationTimer.Cancel(); - } - - TRACE_EXIT_POINT; - } - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::RegisterObserverL -// Adds the passed observer to the observer array. All observers in the array -// will be notified of changes to the agenda database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- - void CCalenDbChangeNotifier::RegisterObserverL( MCalenDBChangeObserver& aDBObserver ) - { - TRACE_ENTRY_POINT; - - iDBObservers.Append( &aDBObserver ); - - TRACE_EXIT_POINT; - } - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::DeRegisterObserverL -// Removes the passed observer to the observer array. All observers in the array -// will be notified of changes to the agenda database. -// ----------------------------------------------------------------------------- -void CCalenDbChangeNotifier::DeRegisterObserverL( MCalenDBChangeObserver& aDBObserver ) - { - TRACE_ENTRY_POINT; - - for( TInt x = 0; x < iDBObservers.Count(); ++x ) - { - if( iDBObservers[x] == &aDBObserver ) - { - iDBObservers.Remove( x ); - return; - } - } - User::Leave( KErrNotFound ); - - TRACE_EXIT_POINT; - } - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::RunL -// From CActive::RunL -// Called when notification timer expires -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CCalenDbChangeNotifier::RunL() - { - TRACE_ENTRY_POINT; - - switch( iStatus.Int() ) - { - case KErrCancel: - { - // The normal reason for the timer being cancelled is another - // database change. Restart the timer. - if( iRestartTimer ) - { - iRestartTimer = EFalse; - iNotificationTimer.After( iStatus, KTimerResolution ); - SetActive(); - } - } - break; - - case KErrNone: - { - //Timer completion, notify observers - for( TInt x = 0; x < iDBObservers.Count(); ++x ) - { - iDBObservers[x]->HandleDBChangeL(); - } - } - break; - - default: - { - User::Leave( KErrArgument ); - } - break; - } - - TRACE_EXIT_POINT; - } - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::RunError -// From CActive::RunError -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -TInt CCalenDbChangeNotifier::RunError( TInt aError ) - { - TRACE_ENTRY_POINT; - - //RunL leaving means that the view could not be refreshed. - //Theres not much we can do except be ready for the next database event. - iRestartTimer = EFalse; - - TRACE_EXIT_POINT; - return aError; - } - -// ----------------------------------------------------------------------------- -// CCalenDbChangeNotifier::DoCancel -// From CActive::DoCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CCalenDbChangeNotifier::DoCancel() - { - TRACE_ENTRY_POINT; - - // Stop the notification timer - iRestartTimer = EFalse; - iNotificationTimer.Cancel(); - - TRACE_EXIT_POINT; - } - -// End of File diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/src/calendeleteui.cpp --- a/calendarui/controller/src/calendeleteui.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/src/calendeleteui.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -39,6 +39,8 @@ #include // TCalenInstanceId #include #include +#include +#include #include "calendarui_debug.h" // Debug #include "calendeleteui.h" @@ -379,6 +381,14 @@ { MarkedEntriesDeletedL(); } + MCalenToolbar* toolbarImpl = iController.Services().ToolbarOrNull(); + if (toolbarImpl) + { + CAknToolbar& toolbar = toolbarImpl->Toolbar(); + + // dim clear and clear all toolbar buttons + toolbar.SetItemDimmed(ECalenNewMeeting, EFalse, ETrue); + } } else { diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/src/calenmultidbeditor.cpp --- a/calendarui/controller/src/calenmultidbeditor.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/src/calenmultidbeditor.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -419,6 +419,7 @@ { iMultipleDbUi.UpdateOnAddOrEditL(!iEditFlag); } + isExitForm = ETrue; iMultipleDbUi.ExitDialogL(); } break; @@ -752,15 +753,15 @@ TInt index = calendarInfoList.Find( *iCalendarName,CCalenMultiDBEditor::CalenInfoIdentifierL ); if(index != KErrNotFound) { + retValue = EFalse; if( EAknCmdExit != aButtonId ) - { - retValue = EFalse; - HBufC* infoText = StringLoader::LoadLC( - R_QTN_CALE_DB_ALREADY_EXISTS_NOTE , iCalendarName->Des() ); - CAknInformationNote* dialog = new( ELeave ) CAknInformationNote(ETrue); - dialog->ExecuteLD( *infoText ); - CleanupStack::PopAndDestroy( infoText ); - } + { + HBufC* infoText = StringLoader::LoadLC( + R_QTN_CALE_DB_ALREADY_EXISTS_NOTE , iCalendarName->Des() ); + CAknInformationNote* dialog = new( ELeave ) CAknInformationNote(ETrue); + dialog->ExecuteLD( *infoText ); + CleanupStack::PopAndDestroy( infoText ); + } } else { @@ -773,13 +774,13 @@ { if( EAknCmdExit != aButtonId ) { - retValue = EFalse; - HBufC* infoText(NULL); - infoText = AreIllegalChars( *iCalendarName ) ? StringLoader::LoadLC( R_CALEN_ILLEGAL_CHARACTERS ) : - StringLoader::LoadLC( R_CALEN_BAD_FILE_NAME ); - CAknInformationNote* dialog = new( ELeave ) CAknInformationNote(ETrue); - dialog->ExecuteLD( *infoText ); - CleanupStack::PopAndDestroy( infoText ); + retValue = EFalse; + HBufC* infoText(NULL); + infoText = AreIllegalChars( *iCalendarName ) ? StringLoader::LoadLC( R_CALEN_ILLEGAL_CHARACTERS ) : + StringLoader::LoadLC( R_CALEN_BAD_FILE_NAME ); + CAknInformationNote* dialog = new( ELeave ) CAknInformationNote(ETrue); + dialog->ExecuteLD( *infoText ); + CleanupStack::PopAndDestroy( infoText ); } } diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/src/calenmultipledbui.cpp --- a/calendarui/controller/src/calenmultipledbui.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/src/calenmultipledbui.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -42,6 +42,9 @@ #include #include #include +#include +#include +#include // User includes #include "calendarui_debug.h" @@ -50,6 +53,7 @@ #include "calenmultidbeditor.h" #include "CalendarPrivateCRKeys.h" #include "calencontroller.h" +#include "CalenUid.h" // Constants _LIT( KListSeparatorFormat, "\t" ); @@ -217,9 +221,10 @@ TRACE_ENTRY_POINT; CAknDialog::ConstructL( R_CALEN_MULTIPLEDB_MENUBAR ); SetTitlePaneL(); - TCallBack callBack(CCalenMultipleDbUi::DoAsyncExit,this); - iAsyncExit = new(ELeave) CAsyncCallBack(callBack,CActive::EPriorityStandard); + TCallBack actionCallBack(CCalenMultipleDbUi::AsyncCallBackL, this); + iAsyncAction = new(ELeave) CAsyncCallBack(actionCallBack,CActive::EPriorityStandard); + // register for calendar file change notifications RArray notificationArray; notificationArray.Append(ECalenNotifyCalendarInfoCreated); @@ -231,9 +236,6 @@ iConflictOccured = EFalse; - TCallBack callBackDeleteQuery(CCalenMultipleDbUi::DoAsyncDeleteTemL, this); - iAsyncDeletequery = new(ELeave) CAsyncCallBack(callBackDeleteQuery,CActive::EPriorityStandard); - TRACE_EXIT_POINT; } @@ -269,13 +271,9 @@ iIconIndices.Reset(); iIconIndices.Close(); - iAsyncExit->Cancel(); - delete iAsyncExit; - iAsyncExit = NULL; - - iAsyncDeletequery->Cancel(); - delete iAsyncDeletequery; - iAsyncDeletequery = NULL; + iAsyncAction->Cancel(); + delete iAsyncAction; + iAsyncAction = NULL; if(iCalendarInfoNew) { @@ -554,29 +552,25 @@ case ECalenCmdEdit: { TInt retValue = EditItemL(); - if(retValue == EAknCmdExit || retValue == EAknSoftkeyExit ) { - iAsyncExitCmd = retValue; - iAsyncExit->CallBack(); + DoAsyncActionL(retValue); } } break; case ECalenCmdAdd: { TInt retValue = AddItemL(); - if(retValue == EAknCmdExit || retValue == EAknSoftkeyExit ) { - iAsyncExitCmd = retValue; - iAsyncExit->CallBack(); + DoAsyncActionL(retValue); } } break; case ECalenCmdDelete: { - iAsyncDeletequery->CallBack(); - } + DoAsyncActionL(ECalenCmdDelete); + } break; case ECalenCmdItemSelect: case ECalenCmdShow: @@ -593,10 +587,16 @@ case EAknCmdExit: case EAknSoftkeyExit: { - iAsyncExitCmd = EAknSoftkeyExit; - iAsyncExit->CallBack(); + DoAsyncActionL(EAknSoftkeyExit); } break; + case EAknCmdHelp: + if (FeatureManager::FeatureSupported(KFeatureIdHelp)) //ravi + { + HlpLauncher::LaunchHelpApplicationL( + iCoeEnv->WsSession(),iAvkonAppUi->AppHelpContextL()); + } + break; default: break; } @@ -604,6 +604,23 @@ } // ---------------------------------------------------------------------------- +// CCalenMultipleDbUi::GetHelpContext +// Gets help context +// (other items were commented in a header). +// ---------------------------------------------------------------------------- +// +void CCalenMultipleDbUi::GetHelpContext( TCoeHelpContext& aContext ) const + { + TRACE_ENTRY_POINT; + + aContext.iMajor = KUidCalendar; + // This is specified in HRH file. + aContext.iContext = KCALE_HLP_DAY_VIEW; //KCALE_HLP_DAY_VIEW should be replaced with MultipleDbUi related help id + + TRACE_EXIT_POINT; + } + +// ---------------------------------------------------------------------------- // CCalenMultipleDbUi::DoSelectionL // Mark the listbox item as hidden/visible based on aMark status // ---------------------------------------------------------------------------- @@ -712,8 +729,8 @@ void CCalenMultipleDbUi::ExitDialogL() { TRACE_ENTRY_POINT - iAsyncExitCmd = EAknSoftkeyExit; - iAsyncExit->CallBack(); + iAsyncActionCmd = EAknSoftkeyExit; + iAsyncAction->CallBack(); TRACE_EXIT_POINT } @@ -775,7 +792,7 @@ { TRACE_ENTRY_POINT; - TInt currentIndex = iListBox->CurrentItemIndex(); + TInt currentIndex = iCurrentIndex; RPointerArray calendarInfoList; iController.GetAllCalendarInfoL(calendarInfoList); @@ -887,7 +904,7 @@ { if( aKeyEvent.iCode == EKeyEscape ) { - TryExitL( EKeyEscape ); + TryExitL( EKeyNo ); return exitCode; // Chain this one up to the main app so it closes calendar app. } else if(aType == EEventKey && TChar(aKeyEvent.iCode).IsPrint() ) @@ -972,6 +989,12 @@ okExit = ETrue; } break; + case EKeyNo: + { + iController.BroadcastNotification(ECalenNotifyDeleteInstanceView); + okExit = CAknDialog::OkToExitL(aButtonId); + break; + } default: { okExit = CAknDialog::OkToExitL(aButtonId); @@ -1157,30 +1180,60 @@ } // ---------------------------------------------------------------------------- -// CCalenMultipleDbUi::CallBackForAddAndDeleteL +// CCalenMultipleDbUi::AsyncCallBackL // (other items were commented in a header). // ---------------------------------------------------------------------------- // -TInt CCalenMultipleDbUi::DoAsyncExit(TAny* aPtr) +TInt CCalenMultipleDbUi::AsyncCallBackL(TAny* aThisPtr) { TRACE_ENTRY_POINT - CCalenMultipleDbUi* self = static_cast(aPtr); - self->TryExitL(self->iAsyncExitCmd); + CCalenMultipleDbUi* self = static_cast(aThisPtr); + self->HandleAsyncCommandL(self->iAsyncActionCmd); TRACE_EXIT_POINT return 0; } + // ---------------------------------------------------------------------------- -// CCalenMultipleDbUi::CallBackForDeleteItemL +// CCalenMultipleDbUi::DoAsyncActionL +// (other items were commented in a header). +// ---------------------------------------------------------------------------- +// +void CCalenMultipleDbUi::DoAsyncActionL(const TInt aCommand) + { + TRACE_ENTRY_POINT + iCurrentIndex = iListBox->CurrentItemIndex(); + iAsyncActionCmd = aCommand; + iAsyncAction->CallBack(); + TRACE_EXIT_POINT + } + +// ---------------------------------------------------------------------------- +// CCalenMultipleDbUi::DoAsyncActionL // (other items were commented in a header). // ---------------------------------------------------------------------------- // -TInt CCalenMultipleDbUi::DoAsyncDeleteTemL(TAny* aPtr) +void CCalenMultipleDbUi::HandleAsyncCommandL(const TInt aCommand) { TRACE_ENTRY_POINT - CCalenMultipleDbUi* self = static_cast(aPtr); - self->DeleteItemL(); + + switch(aCommand) + { + case EAknSoftkeyExit: + case EAknCmdExit: + { + TryExitL(aCommand); + } + break; + case ECalenCmdDelete: + { + DeleteItemL(); + } + break; + default: + break; + } + TRACE_EXIT_POINT - return 0; } // ---------------------------------------------------------------------------- diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/src/calennotifier.cpp --- a/calendarui/controller/src/calennotifier.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/src/calennotifier.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -101,13 +101,6 @@ iEComWatcher = NULL; } - // Stop database change notifications. - if( iDbChangeNotifier ) - { - delete iDbChangeNotifier; - iDbChangeNotifier = NULL; - } - // Stop settings change notifications if( iCenRepChangeNotifier ) { @@ -170,10 +163,6 @@ iCenRepChangeNotifier = CCenRepNotifyHandler::NewL( *this, *iRepository ); iCenRepChangeNotifier->StartListeningL(); - // Register for changes to our database session - iDbChangeNotifier = CCalenDbChangeNotifier::NewL( *iGlobalData ); - iDbChangeNotifier->RegisterObserverL( *this ); - // Register for changes to the ECom registry iEComWatcher = CCalenEComWatcher::NewL( *this ); @@ -771,6 +760,7 @@ case MCalFileChangeObserver::ECalendarFileCreated: case MCalFileChangeObserver::ECalendarInfoCreated: { + BroadcastNotification(ECalenNotifyDeleteInstanceView); BroadcastNotification(ECalenNotifyCalendarInfoCreated); } break; diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/src/calenviewattachmentsdialog.cpp --- a/calendarui/controller/src/calenviewattachmentsdialog.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/src/calenviewattachmentsdialog.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -105,7 +105,8 @@ CCalenAttachmentModel& aAttachmentModel,CCalenController& aController ) : iAttachmentModel( aAttachmentModel ), iController(aController), - iNewTitle( aTitle ) + iNewTitle( aTitle ), + iEmbeddedFileOpened(EFalse) { TRACE_ENTRY_POINT; TRACE_EXIT_POINT; @@ -392,6 +393,7 @@ { TRACE_ENTRY_POINT; + iEmbeddedFileOpened = EFalse; if (aReason == EAknCmdExit) { //issue this notification, which will be handled by attachmentui. @@ -798,7 +800,7 @@ { TRACE_ENTRY_POINT; //Single click integration - if ( iListBox ) + if ( iListBox && !iEmbeddedFileOpened) { iListBox->HandlePointerEventL( aPointerEvent ); } @@ -1098,18 +1100,27 @@ if(datatype == KNotePadTextDataType()) { + if(iEmbeddedFileOpened) + { + return; + } + iEmbeddedFileOpened = ETrue; const TDesC& notepadTitle = _L("NotePad"); ret = CNotepadApi::ExecFileViewerL( aFile, ¬epadTitle, ETrue, ETrue, KCharacterSetIdentifierIso88591 ); - + iEmbeddedFileOpened = EFalse; } else { //doc handler will open the other files (other than text file). TRAP( ret, iDocHandler->OpenFileEmbeddedL( aFile, datatype ) ); + if(ret == KErrNone) + { + iEmbeddedFileOpened = ETrue; + } } switch(ret) diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/controller/src/calenviewmanager.cpp --- a/calendarui/controller/src/calenviewmanager.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/controller/src/calenviewmanager.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -1340,7 +1340,14 @@ { TRACE_ENTRY_POINT; TRACE_EXIT_POINT; - return iToolbar; + if (iToolbar) + { + if (iToolbar->IsICalenToolBar()) + { + return iToolbar; + } + } + return NULL; } // ---------------------------------------------------------------------------- diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/editors/data/CalenDefaultEditorsData.rss --- a/calendarui/editors/data/CalenDefaultEditorsData.rss Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/editors/data/CalenDefaultEditorsData.rss Wed Apr 14 15:55:57 2010 +0300 @@ -202,7 +202,7 @@ }, MENU_ITEM { - command = EAknCmdExit; + command = EAknSoftkeyExit; txt = qtn_options_exit; } }; @@ -273,7 +273,7 @@ }, MENU_ITEM { - command = EAknCmdExit; + command = EAknSoftkeyExit; txt = qtn_options_exit; } }; @@ -1643,7 +1643,7 @@ }, MENU_ITEM { - command = EAknCmdExit; + command = EAknSoftkeyExit; txt = qtn_options_exit; } }; diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/editors/inc/calendbfield.h --- a/calendarui/editors/inc/calendbfield.h Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/editors/inc/calendbfield.h Wed Apr 14 15:55:57 2010 +0300 @@ -116,6 +116,24 @@ */ static TBool CalendarInfoNameIdentifierL( const HBufC* aName, const CCalCalendarInfo& aInfoItem ); + + /** + * @brief show infonote when database changes and entry having + * childs. + */ + void ShowChangeDBQueryL(); + /* + * Callback for CAsyncCallBack class + * @param aThisPtr* this pointer. + * @return TInt status. + */ + static TInt DoAsyncShowChangeDBQueryL(TAny* aThisPtr); + + /** + * @brief Update data in editor + * @param aColId collection Id of selected database + */ + void SetDataToEditorL(const TCalCollectionId& aColId); public: //previous calendar collection id @@ -153,6 +171,7 @@ //services referance not owned MCalenServices* iServices; HBufC* iCalendarFileName; + CAsyncCallBack* iAsyncDBquery; }; diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/editors/inc/calenunifiededitor.h --- a/calendarui/editors/inc/calenunifiededitor.h Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/editors/inc/calenunifiededitor.h Wed Apr 14 15:55:57 2010 +0300 @@ -297,8 +297,9 @@ /** * @brief Handles "Exit" command. + * @param aCmd Holds the command issued. */ - void OnCmdExitL(); + void OnCmdExitL(TInt aCmd); /** * @brief Delete note from Calendar. diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/editors/src/calenalldayfield.cpp --- a/calendarui/editors/src/calenalldayfield.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/editors/src/calenalldayfield.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -162,11 +162,11 @@ // editor should display EndDate as 23/06/2009. if( endDate > startDate ) { - //endDate -= TTimeIntervalDays( 1 ); - //endDate contains the time component also, even for same day endDate would be greater then startDate - //subtracting 1 from endate will give endDate as one day before startDate. - //For All day event Start date and End Date are same so assigning startDate to endDate. - endDate = startDate; + endDate -= TTimeIntervalDays( 1 ); + if( endDate < startDate ) + { + endDate = startDate; + } } iUnifiedEditor.EditorFields().SetDateField( ECalenEditorStartDate, startDate, ETrue ); diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/editors/src/calendbfield.cpp --- a/calendarui/editors/src/calendbfield.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/editors/src/calendbfield.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -112,6 +112,13 @@ { TRACE_ENTRY_POINT; + if( iAsyncDBquery ) + { + iAsyncDBquery->Cancel(); + delete iAsyncDBquery; + iAsyncDBquery = NULL; + } + delete iDbNamesArrayText; delete iDbNamesArray; delete iDbNamesTextValues; @@ -204,6 +211,41 @@ } // ----------------------------------------------------------------------------- +// CCalenDbField::SetDataToEditorL +// update data in form +// ----------------------------------------------------------------------------- +// +void CCalenDbField::SetDataToEditorL(const TCalCollectionId& aColId) + { + TRACE_ENTRY_POINT; + //Get MultipleDbInfo array + RPointerArray calendarInfoList; + iServices->GetAllCalendarInfoL(calendarInfoList); + CleanupClosePushL(calendarInfoList); + + TInt index = KErrNotFound; + + HBufC* calendarFileName= iServices->GetCalFileNameForCollectionId(aColId).AllocLC(); + index = calendarInfoList.Find(*calendarFileName, CCalenDbField::CalendarInfoNameIdentifierL); + CleanupStack::PopAndDestroy(calendarFileName); + + if (KErrNotFound == index) + { + iDbNamesTextValues->SetCurrentValueIndex(0); + } + else + { + iDbNamesTextValues->SetCurrentValueIndex(index); + } + iUnifiedEditor.EditorDataHandler().SetCalendarFieldEditedL( + IsCalendarEdited(), iPreviousColId, iCurrentColId); + + CleanupStack::PopAndDestroy(&calendarInfoList); + + TRACE_EXIT_POINT; + } + +// ----------------------------------------------------------------------------- // CCalenDbField::HandleControlStateChangeL // (other items were commented in a header). // ----------------------------------------------------------------------------- @@ -220,25 +262,10 @@ ReadDataFromFormL( continueOnError ); iUnifiedEditor.EditorDataHandler().SetCalendarFieldEditedL(IsCalendarEdited() ,iPreviousColId,iCurrentColId); - //Check the child entries for the repeated entry - //The entry which is changing the calendar having any childs - //show this information note to the user. - CCalEntry& originalEntry = iUnifiedEditor.EditorDataHandler().Entry(); - RPointerArray childEntries; - CleanupClosePushL(childEntries); - iServices->EntryViewL(iPreviousColId)->FetchL(originalEntry.UidL(), childEntries); - if(IsCalendarEdited() && (childEntries.Count() > 1)) - { - CAknQueryDialog* dlg = CAknQueryDialog::NewL(); - if( !dlg->ExecuteLD( R_CALEN_DB_CHANGE_QUERY ) ) - { - iCurrentColId = iPreviousColId; - SetDataToEditorL(); - iUnifiedEditor.UpdateFormL(); - } - } - CleanupStack::PopAndDestroy( &childEntries ); + TCallBack callback(DoAsyncShowChangeDBQueryL,this); + iAsyncDBquery = new(ELeave) CAsyncCallBack(callback,CActive::EPriorityStandard); + iAsyncDBquery->CallBack(); break; } default: @@ -248,6 +275,23 @@ TRACE_EXIT_POINT; } +// ---------------------------------------------------------------------------- +// CallBackForShowinginfonote +// (other items were commented in a header). +// ---------------------------------------------------------------------------- +// +TInt CCalenDbField::DoAsyncShowChangeDBQueryL(TAny* aThisPtr) + { + TRACE_ENTRY_POINT + CCalenDbField* self = static_cast(aThisPtr); + if(self) + { + self->ShowChangeDBQueryL(); + } + TRACE_EXIT_POINT + return 0; + } + // ----------------------------------------------------------------------------- // CCalenDbField::ReadDataFromFormL // (other items were commented in a header). @@ -355,4 +399,34 @@ TRACE_EXIT_POINT; return (!calendarFileName.CompareF(*aName)); } +// ----------------------------------------------------------------------------- +// CCalenDbField::ShowChangeDBQueryL +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CCalenDbField::ShowChangeDBQueryL() + { + + //Check the child entries for the repeated entry + //The entry which is changing the calendar having any childs + //show this information note to the user. + CCalEntry& originalEntry = iUnifiedEditor.EditorDataHandler().Entry(); + RPointerArray childEntries; + CleanupClosePushL(childEntries); + iServices->EntryViewL(iPreviousColId)->FetchL(originalEntry.UidL(), childEntries); + if(IsCalendarEdited() && (childEntries.Count() > 1)) + { + TCalCollectionId currentId = iCurrentColId; + SetDataToEditorL(); + iUnifiedEditor.UpdateFormL(); + CAknQueryDialog* dlg = CAknQueryDialog::NewL(); + if( dlg->ExecuteLD( R_CALEN_DB_CHANGE_QUERY ) ) + { + iCurrentColId = currentId; + SetDataToEditorL(iCurrentColId); + iUnifiedEditor.UpdateFormL(); + } + } + CleanupStack::PopAndDestroy( &childEntries ); + } // End of File diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/editors/src/calenunifiededitor.cpp --- a/calendarui/editors/src/calenunifiededitor.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/editors/src/calenunifiededitor.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -583,6 +583,7 @@ case ECalenEditSeries: case ECalenEditOccurrence: case EAknCmdExit: + case EAknSoftkeyExit: case EEikBidCancel: { // EEikBidCancel is called when Red End key is pressed or @@ -601,6 +602,9 @@ { PIM_TRAPD_HANDLE( TryToSaveNoteOnForcedExitL() ); } + if(EAknSoftkeyExit == aButtonId) + iServices->IssueCommandL(aButtonId); + break; } case EAknSoftkeyDone: @@ -1051,7 +1055,8 @@ OnCmdDeleteNoteL(); break; case EAknCmdExit: - OnCmdExitL(); + case EAknSoftkeyExit: + OnCmdExitL(aCommandId); break; case EAknCmdHelp: OnCmdHelpL(); @@ -1420,12 +1425,12 @@ // (other items were commented in a header). // ----------------------------------------------------------------------------- // -void CCalenUnifiedEditor::OnCmdExitL() +void CCalenUnifiedEditor::OnCmdExitL(TInt aCmd) { - TRACE_ENTRY_POINT; - - TryExitL( EAknCmdExit ); - + TRACE_ENTRY_POINT; + + TryExitL( aCmd ); + TRACE_EXIT_POINT; } @@ -1437,7 +1442,13 @@ // void CCalenUnifiedEditor::TryToDeleteNoteL( TBool /* aIsViaDeleteMenu */ ) { - TRACE_ENTRY_POINT; + TRACE_ENTRY_POINT; + + TInt attachmentCount = iServices->GetAttachmentData()->NumberOfItems(); + if(Edited().AttachmentCount() || attachmentCount) + { + iServices->GetAttachmentData()->Reset(); + } if (IsCreatingNewEntry()) { iEntryUpdater->TryDeleteInstanceWithUiL( EditorDataHandler().Entry() , @@ -1919,7 +1930,7 @@ endDate == CalenDateUtils::BeginningOfDay( endDate ) ) { TTimeIntervalDays differenceInTime = endDate.DaysFrom(startDate); // fix for AllDayEntry issue - if( CCalEntry::EAppt == Edited().EntryType() && startDate != endDate && differenceInTime.Int() == 1 ) + if( CCalEntry::EAppt == Edited().EntryType() && startDate != endDate && differenceInTime.Int() >= 1 ) { Edited().SetEntryType( CCalEntry::EEvent ); } diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/editors/src/calenunifiededitorcontrol.cpp --- a/calendarui/editors/src/calenunifiededitorcontrol.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/editors/src/calenunifiededitorcontrol.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -237,7 +237,10 @@ iRepeatField->SetDataToEditorL(); } - iDbField->SetDataToEditorL(); + if(!iDbField->IsCalendarEdited()) + { + iDbField->SetDataToEditorL(); + } if( CCalEntry::ETodo != iUnifiedEditor.GetEntryType() ) { @@ -1096,6 +1099,13 @@ result = CalenDateUtils::BeginningOfDay( result ); } + if( iAllDayField->IsAllDayEvent() ) + { + TTime endDate = iUnifiedEditor.Edited().EndDateTime(); + endDate = CalenDateUtils::BeginningOfDay( endDate ); + iUnifiedEditor.Edited().SetEndDateTimeL(endDate); + } + resDT = result.DateTime(); TRACE_EXIT_POINT; return result; @@ -1139,6 +1149,8 @@ // In Editor it should be displayed as "StartDate: 15-08-2010 & EndDate:15-08-2010" // But, while saving EndDate is saved as 12:00am, 16-08-2010. TTime startDate = iUnifiedEditor.Edited().StartDateTime(); + startDate = CalenDateUtils::BeginningOfDay( startDate ); + iUnifiedEditor.Edited().SetStartDateTimeL(startDate); if( result >= startDate ) { result += TTimeIntervalDays( KOneDay ); @@ -1417,20 +1429,11 @@ // For allday (1 day) event Eg. "Start:- 12:00am, 15-08-2010 & End:-12:00am, 16-08-2010" // In Editor it should be displayed as "StartDate: 15-08-2010 & EndDate:15-08-2010" // No time filed is displayed. - if ( end > start ) + end -= TTimeIntervalDays( KOneDay ); + if ( end < start ) { - //end -= TTimeIntervalDays( KOneDay ); - //end contains the time component also, even for same day end would be greater then start - //subtracting 1 from end will give end as one day before start. - //For All day event Start date and End Date are same so assigning start to end. end = start; } - else if( end == start ) - { - // For allday event minimum duration is 1day. - TTime endDate = start + TTimeIntervalDays( KOneDay ); - iUnifiedEditor.Edited().SetEndDateTimeL( endDate ); - } } SetDateField( ECalenEditorEndDate, end, ETrue ); diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/globaldata/BWINS/calenglobaldatau.def --- a/calendarui/globaldata/BWINS/calenglobaldatau.def Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/globaldata/BWINS/calenglobaldatau.def Wed Apr 14 15:55:57 2010 +0300 @@ -23,7 +23,7 @@ ?ResetKeyEventQueue@CCalenGlobalData@@QAEXXZ @ 22 NONAME ; void CCalenGlobalData::ResetKeyEventQueue(void) ?GetQueuedKeyEvent@CCalenGlobalData@@QAEHAAUTKeyEvent@@AAW4TEventCode@@@Z @ 23 NONAME ; int CCalenGlobalData::GetQueuedKeyEvent(struct TKeyEvent &, enum TEventCode &) ?CalenSendL@CCalenGlobalData@@QAEAAVCCalenSend@@XZ @ 24 NONAME ; class CCalenSend & CCalenGlobalData::CalenSendL(void) - ?NewL@CCalenGlobalData@@SAPAV1@AAVMCalProgressCallBack@@PAVMCalenContextChangeObserver@@@Z @ 25 NONAME ; class CCalenGlobalData * CCalenGlobalData::NewL(class MCalProgressCallBack &, class MCalenContextChangeObserver *) + ?NewL@CCalenGlobalData@@SAPAV1@AAVMCalProgressCallBack@@PAVMCalenContextChangeObserver@@PAVMCalenDBChangeObserver@@@Z @ 25 NONAME ; class CCalenGlobalData * CCalenGlobalData::NewL(class MCalProgressCallBack &, class MCalenContextChangeObserver *, class MCalenDBChangeObserver *) ?EntryViewExists@CCalenGlobalData@@QAEHXZ @ 26 NONAME ; int CCalenGlobalData::EntryViewExists(void) ?AttemptToRetrieveDefaultMailboxL@CCalenGlobalData@@QAEHAAUTMailboxInfo@CMRMailboxUtils@@@Z @ 27 NONAME ; int CCalenGlobalData::AttemptToRetrieveDefaultMailboxL(struct CMRMailboxUtils::TMailboxInfo &) ?GetAllCalendarInfoL@CCalenGlobalData@@QAEXAAV?$RPointerArray@VCCalCalendarInfo@@@@@Z @ 28 NONAME ; void CCalenGlobalData::GetAllCalendarInfoL(class RPointerArray &) diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/globaldata/eabi/calenglobaldatau.def --- a/calendarui/globaldata/eabi/calenglobaldatau.def Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/globaldata/eabi/calenglobaldatau.def Wed Apr 14 15:55:57 2010 +0300 @@ -31,7 +31,7 @@ _ZN16CCalenGlobalData21InitializeGlobalDataLEv @ 30 NONAME _ZN16CCalenGlobalData29GetCalFileNameForCollectionIdEh @ 31 NONAME _ZN16CCalenGlobalData32AttemptToRetrieveDefaultMailboxLERN15CMRMailboxUtils12TMailboxInfoE @ 32 NONAME - _ZN16CCalenGlobalData4NewLER20MCalProgressCallBackP27MCalenContextChangeObserver @ 33 NONAME + _ZN16CCalenGlobalData4NewLER20MCalProgressCallBackP27MCalenContextChangeObserverP22MCalenDBChangeObserver @ 33 NONAME _ZN16CCalenGlobalData7ContextEv @ 34 NONAME _ZN16CCalenGlobalData7ReleaseEv @ 35 NONAME _ZN16CCalenGlobalData8InstanceEv @ 36 NONAME diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/globaldata/group/CalenGlobalData.mmp --- a/calendarui/globaldata/group/CalenGlobalData.mmp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/globaldata/group/CalenGlobalData.mmp Wed Apr 14 15:55:57 2010 +0300 @@ -37,7 +37,8 @@ SOURCE calenvcalexport.cpp SOURCE calencontextimpl.cpp -SOURCE calenfilemapping.cpp +SOURCE calenfilemapping.cpp +SOURCE calendbchangenotifier.cpp USERINCLUDE ../inc USERINCLUDE ../../inc diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/globaldata/group/bld.inf --- a/calendarui/globaldata/group/bld.inf Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/globaldata/group/bld.inf Wed Apr 14 15:55:57 2010 +0300 @@ -27,6 +27,7 @@ //organizer/calendarui/inc ../inc/calensend.h |../../inc/calensend.h ../inc/calencontextchangeobserver.h |../../inc/calencontextchangeobserver.h +../inc/calendbchangenotifier.h |../../inc/calendbchangenotifier.h //organizer/inc ../inc/calenglobaldata.h |../../../inc/calenglobaldata.h diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/globaldata/inc/calendbchangenotifier.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/globaldata/inc/calendbchangenotifier.h Wed Apr 14 15:55:57 2010 +0300 @@ -0,0 +1,152 @@ +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Notifies observers of external changes to the calendar database +* +*/ + + +#ifndef __CALENDBCHANGENOTIFIER_H +#define __CALENDBCHANGENOTIFIER_H + +// INCLUDES +#include + +#include //MCalChangeCallBack + +// FORWARD DECLARATIONS +class CCalSession; //Calendar session +class CCalenGlobalData; //Calendar global data + +// CLASS DECLARATION + +/** +* Observer class for database changes. Forwards callback from +* MCalChangeCallBack2 +*/ +class MCalenDBChangeObserver + { + public: + virtual void HandleDBChangeL() = 0; + }; + +/** +* CCalenDbChangeNotifier buffers notifications from MCalChangeCallBack2 and +* only notifies its observers after a set period has elapsed. This prevents +* Calendar views refreshing more often than necessary during a sync operation +*/ +NONSHARABLE_CLASS(CCalenDbChangeNotifier) : public CActive, + public MCalChangeCallBack2 + { + public: // Constructors and destructor + /** + * Constructor. + * @param aGlobalData global data reference + * @return a pointer to the new CCalenDbChangeNotifier instance + */ + static CCalenDbChangeNotifier* NewL( CCalSession& aSession ); + + /** + * Destructor. + */ + ~CCalenDbChangeNotifier(); + + public: + /** + * Allow CCalenViews to register for database change notifications + * @param aDBObserver Observer to register + */ + void RegisterObserverL( MCalenDBChangeObserver& aDBObserver ); + + /** + * Allow CCalenViews to deregister for database change notifications + * @param aDBObserver Observer to deregister + */ + void DeRegisterObserverL( MCalenDBChangeObserver& aDBObserver ); + + /** + * Returns the time of the last call to MCalChangeCallBack2::CalChangeNotification + * This is not necessarily the same time as the last notification issued by + * this class + * @return Time of the last database modification as TTime + */ + TTime LastDBModificationTime() const; + + public: + /** + * From MCalChangeCallBack2 + * Called when the calendar database is changed through another + * CCalSession + * @param aChangeItems array of database items changed + */ + void CalChangeNotification( RArray& aChangeItems ); + + private: + /** + * C++ default constructor. + * @param aGlobalData global data reference + */ + CCalenDbChangeNotifier( CCalSession& aSession ); + + /** + * By default Symbian 2nd phase constructor is private. + * Performs any construction which may leave + */ + void ConstructL(); + + /** + * From CActive + * Called when outstanding asynchronous request completes + * This will be called when iNotificationTimer either completes + * or is cancelled + */ + void RunL(); + + /** + * From CActive + * Called by the active scheduler if RunL leaves + * Ensures we are ready to receive the next database event + * @param aError System wide error code + */ + TInt RunError( TInt aError ); + + /** + * From CActive + * Implements cancellation of outstanding asynchronous requests + * Cancels iNotificationTimer if started + */ + void DoCancel(); + + private: // Data + + //Database change observer filter + CCalChangeNotificationFilter* iCalChangeFilter; + + //Observer array + RPointerArray iDBObservers; + + //Timer to limit the amount of notifications issued by this class + RTimer iNotificationTimer; + + //The time of the last received notification + TTime iLastDbChangeNotification; + + //Flag to restart the timer after cancelling last tiemr request + TBool iRestartTimer; + + CCalSession& iSession; + }; + +#endif // __CALENDBCHANGENOTIFIER_H + +// End of File diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/globaldata/inc/calenfilemapping.h --- a/calendarui/globaldata/inc/calenfilemapping.h Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/globaldata/inc/calenfilemapping.h Wed Apr 14 15:55:57 2010 +0300 @@ -22,6 +22,7 @@ #include class CCalEntryView; +class CCalenDbChangeNotifier; /** @@ -107,6 +108,18 @@ */ CCalSession *GetSessionPtr(); + /* + * Set the dbchangenotifier observer + * @param CCalSession pointer to a session + */ + void SetDBChangeNotifier(CCalenDbChangeNotifier* aDBChangeNotifier ); + + /* + * Get the dbchangenotifier observer. + * @return CCalSession pointer to session. + */ + CCalenDbChangeNotifier *GetDBChangeNotifier(); + private: /** @@ -125,7 +138,8 @@ TInt iStatus; CCalSession* iSessionPtr; TCalCollectionId iColId; - CCalEntryView* iEntryView; + CCalEntryView* iEntryView; + CCalenDbChangeNotifier* iDBChangeNotifier; }; diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/globaldata/inc/calenglobaldata.h --- a/calendarui/globaldata/inc/calenglobaldata.h Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/globaldata/inc/calenglobaldata.h Wed Apr 14 15:55:57 2010 +0300 @@ -30,6 +30,8 @@ #include // Calendar Entry view #include //RHashSet +#include "calendbchangenotifier.h" // MCalenDBChangeObserver + #include @@ -76,7 +78,8 @@ */ IMPORT_C static CCalenGlobalData* NewL( MCalProgressCallBack& aCalCallBack, - MCalenContextChangeObserver* aNotifier=NULL ); + MCalenContextChangeObserver* aNotifier=NULL, + MCalenDBChangeObserver* aDBNotifier=NULL); /** * Constructor. Returns a new instance of CCalenGlobalData if @@ -315,7 +318,8 @@ * By default Symbian 2nd phase constructor is private. * Doesn't take ownership of aNotifier. */ - void ConstructL( MCalenContextChangeObserver* aNotifier ); + void ConstructL( MCalenContextChangeObserver* aNotifier, + MCalenDBChangeObserver* aDBNotifier); /** * Private Destructor. Users of this class should call Release() instead @@ -485,6 +489,7 @@ TBool iCalendarForcedExit; CCalSession* iCalendarsSession; RPointerArray iCalendarInfoList; + MCalenDBChangeObserver* iDBChangeNotifier; }; #endif // CALENGLOBALDATA_H diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/globaldata/src/calendbchangenotifier.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/globaldata/src/calendbchangenotifier.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -0,0 +1,287 @@ +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Notifies observers of external changes to the calendar database +* +*/ + + + +//debug +#include "calendarui_debug.h" + +// INCLUDE FILES +#include "calendbchangenotifier.h" // CCalenDbChangeNotifier +#include "calenglobaldata.h" // Calendar global data +#include // CalSession + +// ----------------------------------------------------------------------------- +// KTimerResolution limits the number of notifications sent to registered +// MCalenDBChangeObserver instances. Notifications may come from +// MCalChangeCallBack2 at a very high rate which could impact performance, +// for example by causing constant view refreshes. +// CCalenDbChangeNotifier notifies observers when KTimerResolution has elapsed +// since the last notification was received from MCalChangeCallBack2 +// ----------------------------------------------------------------------------- +const TInt KTimerResolution = 1000000; // 1 Second + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::CCalenDbChangeNotifier +// C++ default constructor can NOT contain any code, that might leave. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +CCalenDbChangeNotifier::CCalenDbChangeNotifier( CCalSession& aSession ) + : CActive( EPriorityNormal ), + iSession( aSession ) + { + TRACE_ENTRY_POINT; + + iRestartTimer = EFalse; + + TRACE_EXIT_POINT; + } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::NewL +// Two-phased constructor. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +CCalenDbChangeNotifier* CCalenDbChangeNotifier::NewL( CCalSession& aSession ) + { + TRACE_ENTRY_POINT; + + CCalenDbChangeNotifier* self = new( ELeave ) CCalenDbChangeNotifier( aSession ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + TRACE_EXIT_POINT; + return self; + } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::ConstructL +// Symbian 2nd phase constructor can leave. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +void CCalenDbChangeNotifier::ConstructL() + { + TRACE_ENTRY_POINT; + + // We want to receive notifications for the full agenda date range + TCalTime start, end; + start.SetTimeUtcL( TCalTime::MinTime() ); + end.SetTimeUtcL( TCalTime::MaxTime() ); + CalCommon::TCalTimeRange range( start, end ); + + // Create a notification filter + iCalChangeFilter = CCalChangeNotificationFilter::NewL( + MCalChangeCallBack2::EChangeEntryAll, + ETrue, + range ); + + // Enable database change notifications on current global data session + iSession.StartChangeNotification( *this, *iCalChangeFilter ); + + // Create a timer to limit the number of notifications broadcast + iNotificationTimer.CreateLocal(); + + // Active object, add to active scheduler + CActiveScheduler::Add( this ); + + TRACE_EXIT_POINT; + } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::~CCalenDbChangeNotifier +// Destructor +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +CCalenDbChangeNotifier::~CCalenDbChangeNotifier() + { + TRACE_ENTRY_POINT; + + Cancel(); + // Reset the observer array. Array contents are NOT owned by this class + iDBObservers.Reset(); + + iNotificationTimer.Close(); + + // Disable database change notifications on current global data session + PIM_TRAPD_HANDLE( iSession.StopChangeNotification() ); + + // Destroy the notification filter + delete iCalChangeFilter; + + TRACE_EXIT_POINT; + } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::LastDBModificationTime +// Returns the time of the last database change notification. This may not be +// the time of the last notification sent to MCalenDBChangeObservers. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +TTime CCalenDbChangeNotifier::LastDBModificationTime() const + { + TRACE_ENTRY_POINT; + + TRACE_EXIT_POINT; + return iLastDbChangeNotification; + } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::CalChangeNotification +// Called when a change to the agenda database occurs from a different session +// to the one we are currently using. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +void CCalenDbChangeNotifier::CalChangeNotification( RArray& /*aChangeItems*/ ) + { + TRACE_ENTRY_POINT; + + // Always update the last notification time, even if we don't notify + // our observers + iLastDbChangeNotification.UniversalTime(); + if( !IsActive() ) + { + iNotificationTimer.After( iStatus, KTimerResolution ); + SetActive(); + } + else + { + iRestartTimer = ETrue; + iNotificationTimer.Cancel(); + } + + TRACE_EXIT_POINT; + } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::RegisterObserverL +// Adds the passed observer to the observer array. All observers in the array +// will be notified of changes to the agenda database. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- + void CCalenDbChangeNotifier::RegisterObserverL( MCalenDBChangeObserver& aDBObserver ) + { + TRACE_ENTRY_POINT; + + iDBObservers.Append( &aDBObserver ); + + TRACE_EXIT_POINT; + } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::DeRegisterObserverL +// Removes the passed observer to the observer array. All observers in the array +// will be notified of changes to the agenda database. +// ----------------------------------------------------------------------------- +void CCalenDbChangeNotifier::DeRegisterObserverL( MCalenDBChangeObserver& aDBObserver ) + { + TRACE_ENTRY_POINT; + + for( TInt x = 0; x < iDBObservers.Count(); ++x ) + { + if( iDBObservers[x] == &aDBObserver ) + { + iDBObservers.Remove( x ); + return; + } + } + User::Leave( KErrNotFound ); + + TRACE_EXIT_POINT; + } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::RunL +// From CActive::RunL +// Called when notification timer expires +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +void CCalenDbChangeNotifier::RunL() + { + TRACE_ENTRY_POINT; + + switch( iStatus.Int() ) + { + case KErrCancel: + { + // The normal reason for the timer being cancelled is another + // database change. Restart the timer. + if( iRestartTimer ) + { + iRestartTimer = EFalse; + iNotificationTimer.After( iStatus, KTimerResolution ); + SetActive(); + } + } + break; + + case KErrNone: + { + //Timer completion, notify observers + for( TInt x = 0; x < iDBObservers.Count(); ++x ) + { + iDBObservers[x]->HandleDBChangeL(); + } + } + break; + + default: + { + User::Leave( KErrArgument ); + } + break; + } + + TRACE_EXIT_POINT; + } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::RunError +// From CActive::RunError +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +TInt CCalenDbChangeNotifier::RunError( TInt aError ) + { + TRACE_ENTRY_POINT; + + //RunL leaving means that the view could not be refreshed. + //Theres not much we can do except be ready for the next database event. + iRestartTimer = EFalse; + + TRACE_EXIT_POINT; + return aError; + } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::DoCancel +// From CActive::DoCancel +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +void CCalenDbChangeNotifier::DoCancel() + { + TRACE_ENTRY_POINT; + + // Stop the notification timer + iRestartTimer = EFalse; + iNotificationTimer.Cancel(); + + TRACE_EXIT_POINT; + } + +// End of File diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/globaldata/src/calenfilemapping.cpp --- a/calendarui/globaldata/src/calenfilemapping.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/globaldata/src/calenfilemapping.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -16,6 +16,7 @@ */ #include "calendarui_debug.h" #include "calenfilemapping.h" +#include "calendbchangenotifier.h" // MCalenDBChangeObserver #include #include // Calendar Entry view @@ -68,6 +69,12 @@ { TRACE_ENTRY_POINT + if( iDBChangeNotifier ) + { + delete iDBChangeNotifier; + iDBChangeNotifier = NULL; + } + if(iEntryView) { delete iEntryView; @@ -195,4 +202,27 @@ return iSessionPtr; } +/* + * Set the dbchangenotifier observer + * @param CCalSession pointer to a session + */ +void CCalenFileMapping::SetDBChangeNotifier(CCalenDbChangeNotifier* aDBChangeNotifier ) + { + TRACE_ENTRY_POINT; + + iDBChangeNotifier = aDBChangeNotifier; + TRACE_EXIT_POINT; + } + +/* + * Get the dbchangenotifier observer. + * @return CCalSession pointer to session. + */ +CCalenDbChangeNotifier *CCalenFileMapping::GetDBChangeNotifier() + { + TRACE_ENTRY_POINT; + TRACE_EXIT_POINT; + return iDBChangeNotifier; + } + //End diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/globaldata/src/calenglobaldata.cpp --- a/calendarui/globaldata/src/calenglobaldata.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/globaldata/src/calenglobaldata.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -87,7 +87,8 @@ // ---------------------------------------------------------------------------- // EXPORT_C CCalenGlobalData* CCalenGlobalData::NewL( MCalProgressCallBack& aCalCallBack, - MCalenContextChangeObserver* aNotifier ) + MCalenContextChangeObserver* aNotifier, + MCalenDBChangeObserver* aDBNotifier) { TRACE_ENTRY_POINT; @@ -106,7 +107,7 @@ // calls CCalenGlobalData::InstanceL in ConstructL and then ConstructL // leaves, we will double delete the global data. ++self->iRefCount; - self->ConstructL( aNotifier ); + self->ConstructL( aNotifier, aDBNotifier ); CleanupStack::Pop( self ); } else @@ -206,7 +207,8 @@ // Symbian 2nd phase constructor can leave. // (other items were commented in a header). // ----------------------------------------------------------------------------- -void CCalenGlobalData::ConstructL( MCalenContextChangeObserver* aNotifier ) +void CCalenGlobalData::ConstructL( MCalenContextChangeObserver* aNotifier, + MCalenDBChangeObserver* aDBNotifier) { TRACE_ENTRY_POINT; @@ -214,6 +216,8 @@ iNewInstanceViewCreation = NULL; + iDBChangeNotifier = aDBNotifier; + TRACE_EXIT_POINT; } @@ -829,7 +833,8 @@ filemap->SetCalendarFileNameL(calendarFileName); iNewEntryView = NULL; - iNewEntryViewCreation = NULL; + iNewEntryViewCreation = NULL; + CCalenDbChangeNotifier* dbChangeNotifier = NULL; if(iCalSession) { iNewCalSession = NULL; @@ -841,6 +846,9 @@ filemap->SetCollectionId(tempSession.CollectionIdL()); CreateEntryViewL(tempSession); filemap->SetEntryView( iNewEntryView ); + dbChangeNotifier = CCalenDbChangeNotifier::NewL( tempSession ); + dbChangeNotifier->RegisterObserverL(*iDBChangeNotifier); + filemap->SetDBChangeNotifier(dbChangeNotifier); } else { @@ -851,6 +859,9 @@ filemap->SetEntryView( iNewEntryView ); iGlobalDataOwnsEntryView = EFalse; iGlobalDataOwnsCalSession = EFalse; + dbChangeNotifier = CCalenDbChangeNotifier::NewL( tempSession ); + dbChangeNotifier->RegisterObserverL(*iDBChangeNotifier); + filemap->SetDBChangeNotifier(dbChangeNotifier); } iFileMappingArray.Append(filemap); CleanupStack::Pop(filemap); @@ -1278,6 +1289,9 @@ CreateEntryViewL(tempSession); } fileMapping->SetEntryView( iNewEntryView ); + CCalenDbChangeNotifier* dbChangeNotifier = CCalenDbChangeNotifier::NewL( tempSession ); + dbChangeNotifier->RegisterObserverL(*iDBChangeNotifier); + fileMapping->SetDBChangeNotifier(dbChangeNotifier); CleanupStack::PopAndDestroy(aCalendarInfo); iCalendarInfoList.Append(tempSession.CalendarInfoL()); } @@ -1660,6 +1674,9 @@ fileMapper->SetEntryView( iNewEntryView ); iCalendarInfoList.AppendL(newSession->CalendarInfoL()); + CCalenDbChangeNotifier* dbChangeNotifier = CCalenDbChangeNotifier::NewL( *newSession ); + dbChangeNotifier->RegisterObserverL(*iDBChangeNotifier); + fileMapper->SetDBChangeNotifier(dbChangeNotifier); } else { @@ -1678,6 +1695,9 @@ } fileMapper->SetEntryView(iNewEntryView); + CCalenDbChangeNotifier* dbChangeNotifier = CCalenDbChangeNotifier::NewL( *iCalSession ); + fileMapper->SetDBChangeNotifier(dbChangeNotifier); + dbChangeNotifier->RegisterObserverL(*iDBChangeNotifier); iGlobalDataOwnsEntryView = EFalse; iGlobalDataOwnsCalSession = EFalse; iCalendarInfoList.AppendL(iCalSession->CalendarInfoL()); diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/group/bld.inf --- a/calendarui/group/bld.inf Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/group/bld.inf Wed Apr 14 15:55:57 2010 +0300 @@ -23,8 +23,6 @@ #include -// Help exports -#include "../help/group/bld.inf" PRJ_EXPORTS ../loc/calendar.loc APP_LAYER_LOC_EXPORT_PATH(calendar.loc) @@ -81,6 +79,9 @@ PRJ_MMPFILES +// Help files +#include "../help/group/bld.inf" + // commonutils #include "../commonutils/group/bld.inf" diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/organizerplugin/aiagendapluginengine/src/AIAgendaPluginEngineImpl.cpp --- a/calendarui/organizerplugin/aiagendapluginengine/src/AIAgendaPluginEngineImpl.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/organizerplugin/aiagendapluginengine/src/AIAgendaPluginEngineImpl.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -148,13 +148,12 @@ { iEnvironmentChangeNotifier->Cancel(); delete iEnvironmentChangeNotifier; - } - - delete iCalendarEngine; // Close() called in destructor + } iInstanceArray.ResetAndDestroy(); iInstanceArray.Close(); + delete iCalendarEngine; // Close() called in destructor TRACE_EXIT_POINT; } diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/settings/settingsui/src/CalenFileListSettingItem.cpp --- a/calendarui/settings/settingsui/src/CalenFileListSettingItem.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/settings/settingsui/src/CalenFileListSettingItem.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -293,7 +293,7 @@ // Make sure that iOffToneFile is passed, in case iToneFile happens to be KNullDesC ASSERT(!IsEmpty(iToneFile)); - TBool ok = !list->ShowMediaFileListL(&iToneFile, &nullItem, + TBool ok = list->ShowMediaFileListL(&iToneFile, &nullItem, NULL, NULL ); diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/views/inc/caleneventviewcontainer.h --- a/calendarui/views/inc/caleneventviewcontainer.h Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/views/inc/caleneventviewcontainer.h Wed Apr 14 15:55:57 2010 +0300 @@ -601,6 +601,7 @@ TInt iTimeFieldLines; // Number of lines occupied by time field on the viewer TBool iAutomaticHlValue; TBool iAutomaticHlInitialized; + TBool iEmbeddedFileOpened; CItemFinder* iAutoFinder; // text finder CFindItemMenu* iFindMenu; TCursorSelection iSelectedText; // Cursor selection for the text editor diff -r 1984aceb8774 -r 21239b3bcd78 calendarui/views/src/caleneventviewcontainer.cpp --- a/calendarui/views/src/caleneventviewcontainer.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/calendarui/views/src/caleneventviewcontainer.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -118,7 +118,8 @@ : CCalenContainer( aView, aServices ), iEntry(NULL), iAutomaticHlValue(ETrue), - iAutomaticHlInitialized(EFalse) + iAutomaticHlInitialized(EFalse), + iEmbeddedFileOpened(EFalse) { TRACE_ENTRY_POINT; iNumOfLinesBeforeLocField = 0; @@ -561,7 +562,7 @@ iTextEditor->SetFocus(ETrue); // TODO: Uncomment this when enabling attachment support - if(iEventViewData) + if(iEventViewData && !iEmbeddedFileOpened) { if(iEventViewData->AttachmentCount()) @@ -2786,6 +2787,7 @@ { TRACE_ENTRY_POINT; + iEmbeddedFileOpened = EFalse; if (aReason == EAknCmdExit) { //issue this notification, which will be handled by attachmentui. @@ -2953,18 +2955,29 @@ if(datatype == KNotePadTextDataType()) { + if(iEmbeddedFileOpened) + { + return; + } + iEmbeddedFileOpened = ETrue; const TDesC& notepadTitle = _L("NotePad"); ret = CNotepadApi::ExecFileViewerL( aFile, ¬epadTitle, ETrue, ETrue, KCharacterSetIdentifierIso88591 ); + iEmbeddedFileOpened = EFalse; } else { //doc handler will open the other files (other than text file). TRAP( ret, iDocHandler->OpenFileEmbeddedL( aFile, datatype ) ); + + if(ret == KErrNone) + { + iEmbeddedFileOpened = ETrue; + } } switch(ret) diff -r 1984aceb8774 -r 21239b3bcd78 clock2/clockengines/clockserver/server/src/clockserverimpl.cpp --- a/clock2/clockengines/clockserver/server/src/clockserverimpl.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/clock2/clockengines/clockserver/server/src/clockserverimpl.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -506,6 +506,13 @@ } } + // Initialise the attributes to null. + TTime invalidTime( 0 ); + iTimeAttributes->iDstOffset = TTimeIntervalMinutes( 0 ); + iTimeAttributes->iTimeZoneOffset = TTimeIntervalMinutes( 0 ); + iTimeAttributes->iUtcDateTime = invalidTime.DateTime(); + + // Get all the information related to the plugin. // The UTC time. TRAP_IGNORE( aPluginImpl.GetTimeInformationL( EUTCTime, iTimeAttributes ) ); @@ -697,9 +704,47 @@ // Lets see if we can narrow down to a single timezone with the MCC recieved. RArray< CTzId > tzIdArray; - // Try and fetch the timezone ID using the MCC recieved. - TRAP_IGNORE( iTzResolver->TzIdFromMccL( iMcc, tzIdArray, KInvalidTimeZoneId ) ); - + // This parte of code introduced due to error ID EASH-82DPPC(3G Tests for NITZ and GPRS Interaction) + // Fix is bascially to narrowing down to single timezone id if NITZ packet is received prior to MCC. + // In first IF state we are trying to narrowdown to single timezone ID, if not possible try to use MCC to get timezone + // In second IF , we are using MCC to narrow down to single timezone ID directly as dont have NITZ info. + if( iTimeAttributes ) + { + TTime invalidTime(0); + if( iTimeAttributes->iDstOffset != TTimeIntervalMinutes( 0 ) && + iTimeAttributes->iTimeZoneOffset != TTimeIntervalMinutes( 0 ) && + iTimeAttributes->iUtcDateTime.Year() != invalidTime.DateTime().Year() ) + { + // Try to resolve the timezone id with the data that we have recieved. + TInt timezoneId; + TRAP_IGNORE( TInt errorVal = iTzResolver->GetTimeZoneL( *iTimeAttributes, iMcc, timezoneId ) ); + + __PRINT("TIMEZONE ID %d", timezoneId ); + + // Append the timezone id to array. + + CTzId* matchingDSTZoneId = CTzId::NewL( timezoneId ); + CleanupStack::PushL( matchingDSTZoneId ); + + tzIdArray.AppendL( *matchingDSTZoneId ); + + CleanupStack::PopAndDestroy( matchingDSTZoneId ); + + matchingDSTZoneId = NULL; + } + else + { + __PRINTS("NOT ABLE TO NARROW DOWN TO TIMEZONE ID WITH RECEIVED NITZ HENCE TRY WITH MCC"); + // Not able to narrow down to single timezone id with received NITZ packet hence try with MCC. + TRAP_IGNORE( iTzResolver->TzIdFromMccL( iMcc, tzIdArray, KInvalidTimeZoneId ) ); + } + } + else + { + __PRINTS("NO NITZ INFO HENCE TRY WITH MCC"); + // No NITZ info hecne try with MCC to get the time zone Id. + TRAP_IGNORE( iTzResolver->TzIdFromMccL( iMcc, tzIdArray, KInvalidTimeZoneId ) ); + } // Code to check if its the first boot. // Get the first boot status from cenrep. If it is the first boot, clockserver will not update the time. TBool staleBoot( EFalse ); @@ -755,6 +800,20 @@ } CleanupStack::PopAndDestroy( currentCTzId ); CleanupStack::PopAndDestroy( &tz ); + + // Setting the attributes to null again as we dont trust on + // previous NITZ data recevied by device.If device receive + // NITZ data again attributes would get filled with actual value. + // Has been kept outside because this statement is valid for + // first boot also. + if( iTimeAttributes ) + { + iTimeAttributes->iDstOffset = TTimeIntervalMinutes( 0 ); + iTimeAttributes->iTimeZoneOffset = TTimeIntervalMinutes( 0 ); + TTime invalidTime( 0 ); + iTimeAttributes->iUtcDateTime = invalidTime.DateTime(); + } + } } diff -r 1984aceb8774 -r 21239b3bcd78 clock2/clockengines/clocktimezoneresolver/src/clockmcctzmapper.cpp --- a/clock2/clockengines/clocktimezoneresolver/src/clockmcctzmapper.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/clock2/clockengines/clocktimezoneresolver/src/clockmcctzmapper.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -143,8 +143,6 @@ // TInt CClockMCCTzIdMapper::UTCOffSetWithoutDSTChangesL( RTz& aTz, const CTzId& aTzId ) const { - __PRINTS( "CClockMCCTzIdMapper::UTCOffSetWithoutDSTChangesL - Entry" ); - TInt timeOffset( KErrNotFound ); TTime universalTime; @@ -158,8 +156,6 @@ delete currentRules; } - __PRINTS( "CClockMCCTzIdMapper::UTCOffSetWithoutDSTChangesL - Exit" ); - return timeOffset; } diff -r 1984aceb8774 -r 21239b3bcd78 clock2/clockui/uilayer/clockworldview/src/clockworldview.cpp --- a/clock2/clockui/uilayer/clockworldview/src/clockworldview.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/clock2/clockui/uilayer/clockworldview/src/clockworldview.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -150,11 +150,20 @@ //Single click integration // If current item is other than home location set it as new home // location - if ( iContainer->ListBox()->CurrentItemIndex() > KZerothIndex ) + RClkSrvInterface clkSrvInterface; + User::LeaveIfError( clkSrvInterface.Connect() ); + + TBool timeUpdateOn( EFalse ); + + // Get the state of the plugin. + clkSrvInterface.IsAutoTimeUpdateOn( timeUpdateOn ); + if ( iContainer->ListBox()->CurrentItemIndex() > KZerothIndex || timeUpdateOn) { SetHomeLocationL(); } + // Cleanup. + clkSrvInterface.Close(); } break; @@ -294,7 +303,7 @@ __PRINTS( "CClockWorldView::DynInitMenuBarL - Entry" ); //single click integration - if( aMenuBar && ( IsSelectionListOpen() || IsGalleryOpen() ) ) + if( aMenuBar && ( /*IsSelectionListOpen() || */IsGalleryOpen() ) ) { // If the selection list open, we should not display the menupane. aMenuBar->StopDisplayingMenuBar(); diff -r 1984aceb8774 -r 21239b3bcd78 clock2/clockui/uilayer/src/clockappui.cpp --- a/clock2/clockui/uilayer/src/clockappui.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/clock2/clockui/uilayer/src/clockappui.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -27,6 +27,8 @@ #include #include #include +#include +#include // User includes #include "clock.h" @@ -223,14 +225,26 @@ case EClockAlarmExit: case EAknSoftkeyExit: { - if( ExitHidesInBackground() ) + TInt deviceState; + RProperty::Get( KPSUidStartup, KPSGlobalSystemState , deviceState ); + + if( deviceState == ESwStateCharging || deviceState == ESwStateAlarm ) { - HandleCommandL( EAknCmdHideInBackground ); + + Exit(); + } else - { - Exit(); - } + { + if( ExitHidesInBackground() ) + { + HandleCommandL( EAknCmdHideInBackground ); + } + else + { + Exit(); + } + } } break; @@ -336,7 +350,8 @@ { __PRINTS( "CClockAppUi::HandleForegroundEventL - Entry" ); - if( aForeground ) + // commented as a part of the error ESLM-83LG82. + /*if( aForeground ) { __PRINTS( "CClockAppUi::HandleForegroundEventL - aForeground ETrue" ); @@ -352,7 +367,7 @@ iIADUpdateFlag = EFalse; __PRINTS( "CClockAppUi::HandleForegroundEventL - iIADUpdateFlag EFalse" ); } - } + }*/ // Inform the world clock view about the change CClockWorldView* clockWorldView = static_cast< CClockWorldView* > ( View( KClockAppWorldViewId ) ); diff -r 1984aceb8774 -r 21239b3bcd78 notepad/notepad1/LibSrc/NpdListDialog.cpp --- a/notepad/notepad1/LibSrc/NpdListDialog.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/notepad/notepad1/LibSrc/NpdListDialog.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -427,14 +427,11 @@ SaveCurrentAndSelectionsL(); TUid serviceUid = SendByKeysL(*iSendUi, aCommandId, *iModel, iSavedSelectedKeys); iModel->SyncL(EFalse); // sync might be delayed while SendAsL. - RestoreCurrentAndSelectionsL(); - //RestoreCurrent(); TUid EmailUid = {0x10001028}; if ( serviceUid == EmailUid ) { iSendingEmail = ETrue; } - } else { @@ -444,7 +441,6 @@ SendAsL( *iSendUi, aCommandId, EFalse, text ); CleanupStack::PopAndDestroy(); // text iModel->SyncL(EFalse); // sync might be delayed while SendAsL. - RestoreCurrentAndSelectionsL(); } } @@ -1530,7 +1526,7 @@ iInts = new(ELeave) CArrayFixFlat(2); iInts->AppendL(0); iInts->AppendL(aCount); - IncrementL(0); // SetTextL + IncrementL( 1 ); // SetTextL } break; default: diff -r 1984aceb8774 -r 21239b3bcd78 notepad/notepad1/LibSrc/NpdModel.cpp --- a/notepad/notepad1/LibSrc/NpdModel.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/notepad/notepad1/LibSrc/NpdModel.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -385,6 +385,7 @@ { User::LeaveIfError(iSavedDeleteKeys.Append(aKeys[i])); } + iProgressCount = 0; ExecuteDeleteStepL(); iRetval = iFileSession.ReleaseReserveAccess( KDefaultDrive ); iFileSession.Close(); @@ -397,7 +398,7 @@ // void CNotepadModel::ExecuteDeleteStepL() { - iProgressCount = 0; + iStepCount = iSavedDeleteKeys.Count(); if ( iStepCount > KNotepadMaxDeleteCountInStep ) { @@ -411,12 +412,6 @@ if ( IsTemplates() ) { iSavedDeleteKeys.Remove(0); - for (TInt i(0); i < iStepCount - 1; i++) - { - sql.Append(KNotepadSqlDeleteByKeysAppend); - sql.AppendNum(iSavedDeleteKeys[0]); - iSavedDeleteKeys.Remove(0); - } } else // If Notepad, Remove is postponed until remove link phase { @@ -512,6 +507,15 @@ else // do next step { increment = iStepCount - iProgressCount; + + iProgressCount += increment; + if ( iModelObserver ) + { + iModelObserver->HandleNotepadModelEventL( + MNotepadModelObserver::EProgressDeletion, + 1 ); + } + ExecuteDeleteStepL(); } } @@ -530,15 +534,7 @@ { increment = iDbUpdate.RowCount() - iProgressCount; } - if ( increment > 0 ) - { - iProgressCount += increment; - if ( iModelObserver ) - { - iModelObserver->HandleNotepadModelEventL( - MNotepadModelObserver::EProgressDeletion, increment); - } - } + if ( deleteFinished || ( stat == 0 && SysUtil::FFSSpaceBelowCriticalLevelL(&(iEnv->FsSession())) ) ) { diff -r 1984aceb8774 -r 21239b3bcd78 notepad/notepad1/LibSrc/NpdViewerDialog.cpp --- a/notepad/notepad1/LibSrc/NpdViewerDialog.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/notepad/notepad1/LibSrc/NpdViewerDialog.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -583,33 +583,23 @@ // ----------------------------------------------------------------------------- // void CNotepadViewerDialog::HandleDialogPointerEventL( const TPointerEvent& aPointerEvent ) -{ - - if(!AknLayoutUtils::PenEnabled()) - { - return; - } + { + if(!AknLayoutUtils::PenEnabled()) + { + return; + } - if(aPointerEvent.iType == TPointerEvent::EButton1Up ) - { - - TInt curPos = iEditor->CursorPos(); - TRect rect = iEditor->Rect(); - if ( !iAutoFinder->ItemWasTappedL( aPointerEvent.iPosition - rect.iTl ) ) - { - return; - } - - TInt curPos1 = iEditor->CursorPos(); - if (curPos == curPos1) - { - iFlags |= ENotepadMenuByOkKey; - DisplayMenuL(); - } - - + if( aPointerEvent.iType == TPointerEvent::EButton1Up ) + { + TRect rect = iEditor->Rect(); + if ( !iAutoFinder->ItemWasTappedL( aPointerEvent.iPosition - rect.iTl ) ) + { + return; + } + + DisplayMenuL(); + } } -} // ----------------------------------------------------------------------------- // CNotepadViewerDialog::HandleNumberCallL diff -r 1984aceb8774 -r 21239b3bcd78 organizer_pub/notepad_library_api/tsrc/group/ABLD.BAT --- a/organizer_pub/notepad_library_api/tsrc/group/ABLD.BAT Wed Mar 31 21:29:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -rem -rem Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: -rem -rem - -@ECHO OFF - -REM Bldmake-generated batch file - ABLD.BAT -REM ** DO NOT EDIT ** - -perl -S ABLD.PL "\s60\app\organizer\organizer_sdk\notepad_library_api\tsrc\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9 -if errorlevel==1 goto CheckPerl -goto End - -:CheckPerl -perl -v >NUL -if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed? -goto End - -:End diff -r 1984aceb8774 -r 21239b3bcd78 organizer_pub/notepad_library_api/tsrc/group/TestNpdApi.pkg --- a/organizer_pub/notepad_library_api/tsrc/group/TestNpdApi.pkg Wed Mar 31 21:29:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -; -; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -; All rights reserved. -; This component and the accompanying materials are made available -; under the terms of "Eclipse Public License v1.0" -; which accompanies this distribution, and is available -; at the URL "http://www.eclipse.org/legal/epl-v10.html". -; -; Initial Contributors: -; Nokia Corporation - initial contribution. -; -; Contributors: -; -; Description: package file -; -; Languages -; ========= -&EN - -; Name, UID for installation, Maj.Ver., Min.Ver., Variant, FLAG TO SPECIFY UNICODE, System component -; ================================================================================================== -#{"notepad library api Test"},(0x101FB3E7),1,0,1,TYPE=SA - - -; Localised Vendor name -%{"Nokia-EN"} - -; Unique Vendor name -:"Nokia" - -"\epoc32\release\armv5\urel\TestNpdApi.dll" -"$:\sys\bin\TestNpdApi.dll" -"..\data\c\TestNpdApi.txt" -"c:\testing\data\TestNpdApi.txt" -"..\init\testframework.ini" -"c:\TestFramework\testframework.ini" -"..\conf\TestNpdApi.cfg" -"c:\TestFramework\TestNpdApi.cfg" -"..\conf\ui_TestNpdApi.cfg" -"c:\TestFramework\ui_TestNpdApi.cfg" - - -; eof - diff -r 1984aceb8774 -r 21239b3bcd78 organizer_pub/notepad_library_api/tsrc/group/TestNpdApi.sis Binary file organizer_pub/notepad_library_api/tsrc/group/TestNpdApi.sis has changed diff -r 1984aceb8774 -r 21239b3bcd78 organizer_pub/notepad_library_api/tsrc/group/TestNpdApi.sisx Binary file organizer_pub/notepad_library_api/tsrc/group/TestNpdApi.sisx has changed diff -r 1984aceb8774 -r 21239b3bcd78 organizer_pub/notepad_library_api/tsrc/group/rd-key.pem --- a/organizer_pub/notepad_library_api/tsrc/group/rd-key.pem Wed Mar 31 21:29:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDLRF+r1FGGkCwTrb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW4 -6Y+LWaA8HMlDdoHRB0FgASisYcFagwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh -7W7Dt9F5FZij8F7/9Pi6+FhhxZFIf1DD+yry9D7+Sp+BgdNALe4XOpf25QIBAwKB -gQCHgupyjYuvCsgNHn7PNtnvVxInrB5MQNoPli+O+uNJWUK/Q+57Rl+yO8AoEzDX -pFaLWiuVVhsdloDnAgabT/FXzYncs6uOHyEUV+dSXb78vtLPJqAX+Fg2i3hOXreB -yskcZ13/OsKVOu5wgrJkx2baZufkqMwOSytf5y9nwjEIKwJBAP+inobagVNrN62j -KQva3cC+UN/6XnKdTc0CA6bHyLOaJoH1xiMwG/VS2PGjHI0tiSMNtLn/QPpHJ003 -iabGhdUCQQDLjp/9UjFT6K6CF66Chqf30pZXhx+GTSQZmv/gvZiMly7X9fX9BGX3 -2MbJohBC4yI21XKTbisWywkF73Hwh+TRAkEAqmxprzxWN5zPyRdwspHpKymLP/w+ -9xOJM1atGdqFzRFvAU6EF3Vn+OHl9my9s3OwwgkjJqorUYTE3iUGby8D4wJBAIe0 -aqjhdjfwdFa6dFcEb/qMZDpaFQQzbWZnVUB+ZbMPdI/5TqitmU/l2dvBYCyXbCSO -TGJJcg8yBgP09qBamIsCQFL7j1tM0XPVQJQ89WpKCld7O9ORxRGVj1eG0tWijrH8 -mGbYh8SGCVoWV3vrKSS8GBrFVgQnqUaHuEdtM7tpCAQ= ------END RSA PRIVATE KEY----- diff -r 1984aceb8774 -r 21239b3bcd78 organizer_pub/notepad_library_api/tsrc/group/rd.cer --- a/organizer_pub/notepad_library_api/tsrc/group/rd.cer Wed Mar 31 21:29:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICzDCCAjWgAwIBAgIBADANBgkqhkiG9w0BAQUFADArMRAwDgYDVQQKEwdSRCBD -ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZTAeFw0wNDExMTUxMjQyMDZaFw0z -NzA5MjMxMjQyMDZaMCsxEDAOBgNVBAoTB1JEIENlcnQxFzAVBgNVBAMTDlJEIENl -cnRpZmljYXRlMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDLRF+r1FGGkCwT -rb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW46Y+LWaA8HMlDdoHRB0FgASisYcFa -gwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh7W7Dt9F5FZij8F7/9Pi6+FhhxZFI -f1DD+yry9D7+Sp+BgdNALe4XOpf25QIBA6OCAQAwgf0wDAYDVR0TBAUwAwEB/zAL -BgNVHQ8EBAMCAoQwHQYDVR0OBBYEFFi/kuGzxhVpjGxe9ZwlxC3fH9jFMFMGA1Ud -IwRMMEqAFFi/kuGzxhVpjGxe9ZwlxC3fH9jFoS+kLTArMRAwDgYDVQQKEwdSRCBD -ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZYIBADBsBgNVHSAEZTBjMGEGBFUd -IAAwWTATBggrBgEFBQcCARYHaHR0cDovLzBCBggrBgEFBQcCAjA2GjRGb3IgUiZE -IHVzYWdlIG9ubHkuIFRoaXMgY2VydGlmaWNhdGUgaXMgbm90IHRydXN0ZWQuMA0G -CSqGSIb3DQEBBQUAA4GBAHGB4RQMAgBdeT2hxfOr6f2nA/dZm+M5yX5daUtZnET9 -Ed0A9sazLawfN2G1KFQT9kxEParAyoAkpbMAsRrnRz/9cM3OHgFm/NiKRnf50DpT -7oCx0I/65mVD2kt+xXE62/Ii5KPnTufIkPi2uLvURCia1tTS8JmJ8dtxDGyQt8BR ------END CERTIFICATE----- diff -r 1984aceb8774 -r 21239b3bcd78 pimappservices/appenginesdocs/app-engines_documentation.history.xml --- a/pimappservices/appenginesdocs/app-engines_documentation.history.xml Wed Mar 31 21:29:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - - - - - diff -r 1984aceb8774 -r 21239b3bcd78 pimappservices/appenginesdocs/app-engines_documentation.mrp --- a/pimappservices/appenginesdocs/app-engines_documentation.mrp Wed Mar 31 21:29:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -component app-engines_documentation - -source \sf\app\organizer\pimappservices\appenginesdocs\ - -notes_source \component_defs\release.src - - -ipr E - diff -r 1984aceb8774 -r 21239b3bcd78 pimappservices/calendar/server/src/agsattachmentindex.cpp --- a/pimappservices/calendar/server/src/agsattachmentindex.cpp Wed Mar 31 21:29:10 2010 +0300 +++ b/pimappservices/calendar/server/src/agsattachmentindex.cpp Wed Apr 14 15:55:57 2010 +0300 @@ -281,7 +281,8 @@ { // check every attachment const CAgnAttachmentIndexItem* KAttachmentItem = iIndex[i]; - for (TInt j = 0; j < KAttachmentItem->Entries().Count(); ++j) + const TInt entryCount = KAttachmentItem->Entries().Count(); + for (TInt j = 0; j < entryCount; ++j) { // check every entry associated with each attachment if (KEntryLocalUid == (KAttachmentItem->Entries())[j]) diff -r 1984aceb8774 -r 21239b3bcd78 pimappsupport/vcardandvcal/documentation/TestVersit.rtf --- a/pimappsupport/vcardandvcal/documentation/TestVersit.rtf Wed Mar 31 21:29:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} -{\f85\froman\fcharset238\fprq2 Times New Roman CE;}{\f86\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f88\froman\fcharset161\fprq2 Times New Roman Greek;}{\f89\froman\fcharset162\fprq2 Times New Roman Tur;} -{\f90\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f91\fswiss\fcharset238\fprq2 Arial CE;}{\f92\fswiss\fcharset204\fprq2 Arial Cyr;}{\f94\fswiss\fcharset161\fprq2 Arial Greek;}{\f95\fswiss\fcharset162\fprq2 Arial Tur;} -{\f96\fswiss\fcharset186\fprq2 Arial Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128; -\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\widctlpar\adjustright \fs20\lang2057 \snext0 Normal;}{ -\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\lang2057\kerning28 \sbasedon0 \snext0 heading 1;}{\s2\sb240\sa60\keepn\widctlpar\adjustright \b\i\f1\lang2057 \sbasedon0 \snext0 heading 2;}{\s3\sb240\sa60\keepn\widctlpar\adjustright \f1\lang2057 -\sbasedon0 \snext0 heading 3;}{\s4\keepn\widctlpar\outlinelevel3\adjustright \b\f1\fs20\lang2057 \sbasedon0 \snext0 heading 4;}{\s5\keepn\widctlpar\outlinelevel4\adjustright \b\f1\lang2057 \sbasedon0 \snext0 heading 5;}{\*\cs10 \additive -Default Paragraph Font;}}{\*\listtable{\list\listtemplateid38323078\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01-;}{\levelnumbers;}\f0\fbias0 \fi-360\li1800\jclisttab\tx1800 }{\listname -;}\listid817500656}{\list\listtemplateid38323078\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01-;}{\levelnumbers;}\f0\fbias0 \fi-360\li1800\jclisttab\tx1800 }{\listname ;}\listid1308366115} -{\list\listtemplateid38323078\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01-;}{\levelnumbers;}\f0\fbias0 \fi-360\li1800\jclisttab\tx1800 }{\listname ;}\listid1721782559}}{\*\listoverridetable -{\listoverride\listid1308366115\listoverridecount0\ls1}{\listoverride\listid817500656\listoverridecount0\ls2}{\listoverride\listid1721782559\listoverridecount0\ls3}}{\info{\title BITGDI test code}{\author Lane Roberts}{\operator Symbian} -{\creatim\yr2001\mo9\dy28\hr15\min24}{\revtim\yr2001\mo12\dy5\hr17\min7}{\version6}{\edmins80}{\nofpages1}{\nofwords171}{\nofchars977}{\*\company Dell Computer Corporation}{\nofcharsws0}{\vern113}}\paperw11909\paperh16834\margl1440\margr1440 -\widowctrl\ftnbj\aenddoc\hyphcaps0\formshade\viewkind1\viewscale100 \fet0\sectd \psz9\linex0\headery706\footery706\colsx709\endnhere\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2 -\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6 -\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang -{\pntxtb (}{\pntxta )}}\pard\plain \s1\sb240\sa60\keepn\widctlpar\outlinelevel0\adjustright \b\f1\fs28\lang2057\kerning28 {VERSIT test code -\par }\pard\plain \widctlpar\adjustright \fs20\lang2057 {\f1 -\par }{\b\f1\fs24 Test executable file locations -\par -\par }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \clshdng10000\cltxlrtb \cellx3050\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb \cellx6208\pard \widctlpar\intbl\adjustright {\b\f1 WINS location\cell -Hardware location\cell }\pard \widctlpar\intbl\adjustright {\b\f1 \row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt -\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx3050\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx6208\pard -\widctlpar\intbl\adjustright {\f1 \\epoc32\\release\\wins\\udeb\\ -\par or -\par \\epoc32\\release\\wins\\urel\\\cell z:\\system\cell }\pard \widctlpar\intbl\adjustright {\f1 \row }\pard \widctlpar\adjustright {\f1 -\par }\pard\plain \s5\keepn\widctlpar\outlinelevel4\adjustright \b\f1\lang2057 {Automatic test executables - should be run before every release -\par }\pard\plain \widctlpar\adjustright \fs20\lang2057 {\f1 Success: Test program exits cleanly -\par Failure: Test program stops with an error message._ -\par }{\b\f1 -\par }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \clshdng10000\cltxlrtb \cellx2552\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb \cellx8155\pard\plain \s4\keepn\widctlpar\intbl\outlinelevel3\adjustright -\b\f1\fs20\lang2057 {Filename\cell Purpose\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057 {\b\f1 \row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh -\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx2552\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \cltxlrtb \cellx8155\pard \widctlpar\intbl\adjustright {\f1 TBUGFIX.EXE\tab \cell General test. It should be updated each time when a defect has been fixed.}{\b\f1 \cell }\pard \widctlpar\intbl\adjustright {\b\f1 \row }\pard -\widctlpar\intbl\adjustright {\f1 TPERFORMANCE.EXE\tab \tab \cell Do the bench marking in terms of performance and heap usage.}{\b\f1 \cell }\pard \widctlpar\intbl\adjustright {\b\f1 \row }\pard \widctlpar\intbl\adjustright {\f1 TCHARSETVCARD.EXE\tab -\tab \cell Internalise dozens of vCard from files in \\c\\ TestvCards and externalise them by setting different charset and encoding}{\b\f1 \cell }\pard \widctlpar\intbl\adjustright {\b\f1 \row }\pard \widctlpar\intbl\adjustright {\f1 TOOM.EXE\tab \tab -\cell Out of memory test}{\b\f1 \cell }\pard \widctlpar\intbl\adjustright {\b\f1 \row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 -\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx2552\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx8155\pard -\widctlpar\intbl\adjustright {\f1 TVGEN.EXE\tab \tab \cell Build a vCard\\vCal randomly and internalise\\externalise it}{\b\f1 \cell }\pard \widctlpar\intbl\adjustright {\b\f1 \row }\pard \widctlpar\adjustright {\b\f1 -\par }{\b\f1\fs24 Manual test executables - should be run if relevant changes have been made}{\f1 -\par }{\b\f1 -\par }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \clshdng10000\cltxlrtb \cellx1487\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb \cellx7817\pard \widctlpar\intbl\adjustright {\b\f1 Filename\cell Purpose\cell -}\pard \widctlpar\intbl\adjustright {\b\f1 \row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 -\clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx2552\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx8155\pard \widctlpar\intbl\adjustright {\f1 -TVERSIT.EXE\tab \tab \cell Need interaction from the user to test various cases such build, internalise, externalise a vCard or vCal}{\b\f1 \cell }\pard \widctlpar\intbl\adjustright {\b\f1 \row }\pard \widctlpar\adjustright {\b\f1\fs24 -\par Test support files}{\f1 -\par }{\b\f1 -\par }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \clshdng10000\cltxlrtb \cellx851\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb \cellx4536\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb \cellx7088\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \clshdng10000\cltxlrtb \cellx9639\pard \widctlpar\intbl\adjustright {\b\f1 -Filename\cell Emulator location\cell Hardware location\cell Used by\cell }\pard \widctlpar\intbl\adjustright {\b\f1 \row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh -\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx851\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \cltxlrtb \cellx4536\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7088\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \cltxlrtb \cellx9639\pard \widctlpar\intbl\adjustright {\f1 All files \cell \\epoc32\\wins\\c\\testfiles\cell c:\\ testfiles\cell TBUGFIX.EXE\cell }\pard \widctlpar\intbl\adjustright {\f1 \row }\pard \widctlpar\intbl\adjustright {\f1 -All files \cell \\epoc32\\wins\\c\\ tPerformance\\inputfile\cell c:\\ tPerformance\\inputfile\cell TPERFORMANCE.EXE\cell }\pard \widctlpar\intbl\adjustright {\f1 \row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb -\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx851\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl -\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx4536\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7088\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl -\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9639\pard \widctlpar\intbl\adjustright {\f1 All files\cell \\epoc32\\wins\\c\\ testvcards\cell c:\\ testvcards\cell TCHARSETVCARD.EXE\cell }\pard \widctlpar\intbl\adjustright { -\f1 \row }\pard \widctlpar\adjustright {\b\f1\fs24 -\par Test rom building -\par }{\f1 -\par \\versit\\tsrc\\tVersit.iby is listed in bld.inf as a test export with destination \\epoc32\\rom\\include\\. This automatically includes all test programs and files in a rom when used as follows from \\epoc32\\rom\\: \ldblquote tools\\ -buildrom assabet engbuild tVersit.iby\rdblquote . All testing input files specified in the table above}{\f1 }{\f1 are in}{\f1 cluded in tVersit.iby but need to be copied cross to}{\f1 a related directory in c: drive before testing. -\par }}