--- 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 <wakeupalarm.h>
#include <calalarm.h> // KUidAgendaModelAlarmCategory - the alarm category id for calendar alarms
#include <AknUtils.h>
+#include <HWRMPowerStateSDKPSKeys.h>
#ifndef SYMBIAN_CALENDAR_V2
#include <agmalarm.h> // 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;
}
--- 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;
}
--- 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;
}
--- 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
--- 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 <e32base.h>
-
-#include <calchangecallback.h> //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<TCalChangeEntry>& 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<MCalenDBChangeObserver> 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
--- 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<MCalenServices::TCalenIcons> iIconIndices;
CAknIconArray* iIconList;
RArray<TInt32> 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;
};
--- 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<TCalenNotification> iBroadcastQueue;
TBool iBroadcastActive;
- CCalenDbChangeNotifier* iDbChangeNotifier;
CCalenSetting* iSetting;
TBool iIsSettingsBroadcastDeferred;
TBool iSettingsNeedsBroadcast;
--- 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:
/**
--- 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
--- 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;
--- 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
--- 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<TCalenNotification> notificationArray;
--- 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.h> // 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<TCalChangeEntry>& /*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
--- 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 <caleninstanceid.h> // TCalenInstanceId
#include <calenactionuiutils.h>
#include <calcalendarinfo.h>
+#include <calentoolbar.h>
+#include <akntoolbar.h>
#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
{
--- 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 );
}
}
--- 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 <CalenInterimUtils2.h>
#include <calenmulticalutil.h>
#include <calenmulticaluids.hrh>
+#include <featmgr.h>
+#include <hlplch.h>
+#include <csxhelp/cale.hlp.hrh>
// 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<TCalenNotification> 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<CCalCalendarInfo> 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<CCalenMultipleDbUi*>(aPtr);
- self->TryExitL(self->iAsyncExitCmd);
+ CCalenMultipleDbUi* self = static_cast<CCalenMultipleDbUi*>(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<CCalenMultipleDbUi*>(aPtr);
- self->DeleteItemL();
+
+ switch(aCommand)
+ {
+ case EAknSoftkeyExit:
+ case EAknCmdExit:
+ {
+ TryExitL(aCommand);
+ }
+ break;
+ case ECalenCmdDelete:
+ {
+ DeleteItemL();
+ }
+ break;
+ default:
+ break;
+ }
+
TRACE_EXIT_POINT
- return 0;
}
// ----------------------------------------------------------------------------
--- 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;
--- 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)
--- 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;
}
// ----------------------------------------------------------------------------
--- 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;
}
};
--- 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;
};
--- 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.
--- 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 );
--- 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<CCalCalendarInfo> 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<CCalEntry> 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<CCalenDbField*>(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<CCalEntry> 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
--- 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 );
}
--- 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 );
--- 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<class CCalCalendarInfo> &)
--- 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
--- 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
--- 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
--- /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 <e32base.h>
+
+#include <calchangecallback.h> //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<TCalChangeEntry>& 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<MCalenDBChangeObserver> 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
--- 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 <calsession.h>
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;
};
--- 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 <calentryview.h> // Calendar Entry view
#include <e32hashtab.h> //RHashSet
+#include "calendbchangenotifier.h" // MCalenDBChangeObserver
+
#include <calenmulticaluids.hrh>
@@ -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<CCalCalendarInfo> iCalendarInfoList;
+ MCalenDBChangeObserver* iDBChangeNotifier;
};
#endif // CALENGLOBALDATA_H
--- /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.h> // 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<TCalChangeEntry>& /*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
--- 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 <calsession.h>
#include <calentryview.h> // 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
--- 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());
--- 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 <platform_paths.hrh>
-// 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"
--- 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;
}
--- 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 );
--- 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
--- 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)
--- 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();
+ }
+
}
}
--- 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;
}
--- 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();
--- 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 <clockapp_tab.mbg>
#include <AknsConstants.h>
#include <featmgr.h>
+#include <e32property.h>
+#include <startupdomainpskeys.h>
// 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 ) );
--- 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<TInt>(2);
iInts->AppendL(0);
iInts->AppendL(aCount);
- IncrementL(0); // SetTextL
+ IncrementL( 1 ); // SetTextL
}
break;
default:
--- 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())) ) )
{
--- 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
--- 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
--- 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
-
Binary file organizer_pub/notepad_library_api/tsrc/group/TestNpdApi.sis has changed
Binary file organizer_pub/notepad_library_api/tsrc/group/TestNpdApi.sisx has changed
--- 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-----
--- 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-----
--- 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 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<relnotes name="DEVELOPERLIBRARY">
- <purpose>
- </purpose>
-</relnotes>
--- 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
-
--- 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])
--- 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 }}