/*
* Copyright (c) 2006-2007 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: Backup settings
*
*/
#ifndef C_FILEMANAGERBACKUPSETTINGS_H
#define C_FILEMANAGERBACKUPSETTINGS_H
// INCLUDE FILES
#include <e32base.h>
#include <badesca.h>
// FORWARD DECLARATIONS
class CFileManagerEngine;
class CRepository;
// CLASS DECLARATION
/**
* This class is used for storing backup settings
*
* @lib FileManagerEngine.lib
* @since S60 3.1
*/
NONSHARABLE_CLASS(CFileManagerBackupSettings) : public CBase,
public MDesCArray
{
public:
/** Backup setting type */
enum TSettingType
{
ENone = 0,
EContents,
EScheduling,
EWeekday,
ETime,
ETarget
};
/**
* Two-phased constructor.
*/
static CFileManagerBackupSettings* NewL(
CFileManagerEngine& aEngine );
/**
* Destructor
*/
~CFileManagerBackupSettings();
/**
* Sets backup contents
*
* @since S60 3.1
* @param aContent Content bitmask
*/
IMPORT_C void SetContent( const TUint32 aContent );
/**
* Sets backup scheduling
*
* @since S60 3.1
* @param aScheduling Scheduling type
*/
IMPORT_C void SetScheduling( const TInt aScheduling );
/**
* Sets backup weekday
*
* @since S60 3.1
* @param aDay Backup weekday (See TDay)
*/
IMPORT_C void SetDay( const TInt aDay );
/**
* Sets backup time
*
* @since S60 3.1
* @param aTime Time from 00:00
*/
IMPORT_C void SetTime( const TTime& aTime );
/**
* Sets backup target drive
*
* @since S60 3.1
* @param aDrive Target drive (See TDriveNumber)
*/
IMPORT_C void SetTargetDrive( const TInt aDrive );
/**
* Gets backup contents
*
* @since S60 3.1
* @return Content bitmask
*/
IMPORT_C TUint32 Content() const;
/**
* Gets backup scheduling
*
* @since S60 3.1
* @return Scheduling type
*/
IMPORT_C TInt Scheduling() const;
/**
* Gets backup weekday
*
* @since S60 3.1
* @return Backup weekday (See TDay)
*/
IMPORT_C TInt Day() const;
/**
* Gets backup time
*
* @since S60 3.1
* @return Backup time
*/
IMPORT_C const TTime& Time() const;
/**
* Gets backup target drive
*
* @since S60 3.1
* @return Backup time
*/
IMPORT_C TInt TargetDrive() const;
/**
* Saves backup settings
*
* @since S60 3.1
*/
IMPORT_C void SaveL();
/**
* Gets setting type at position
*
* @since S60 3.1
* @param aIndex Position
* @return Setting type
*/
IMPORT_C TInt SettingAt( const TInt aIndex );
/**
* Refreshes backup settings
*
* @since S60 3.1
*/
IMPORT_C void RefreshL();
/**
* Gets textid from content bit
*
* @since S60 3.1
* @param aContent content bit
* @return Textid
*/
static TInt ContentToTextId( const TUint32 aContent );
/**
* Gets allowed drive attribute match mask
*
* @since S60 3.1
* @return drive attribute mask
*/
IMPORT_C TUint32 AllowedDriveAttMatchMask() const;
public: // From MDesCArray
TInt MdcaCount() const;
TPtrC MdcaPoint( TInt aIndex ) const;
private:
/** Backup setting entry */
NONSHARABLE_CLASS(CEntry) : public CBase
{
public:
~CEntry();
HBufC* iText;
TSettingType iType;
};
private:
/**
* Constructors
*/
CFileManagerBackupSettings( CFileManagerEngine& aEngine );
void ConstructL();
/**
* Gets the count of contents selected
*/
TInt ContentsSelected() const;
/**
* Creates backup setting entry
*/
CEntry* CreateEntryLC(
const TSettingType aType,
const TInt aTitleId,
const TInt aTextId,
const TInt aValue = 0 );
/**
* Creates backup setting entry
*/
CEntry* CreateEntryLC(
const TSettingType aType,
const TInt aTitleId,
const TDesC& aText );
/**
* Creates backup setting content entry
*/
CEntry* CreateContentsEntryLC();
/**
* Creates backup setting time entry
*/
CEntry* CreateTimeEntryLC();
/**
* Loads saved backup settings
*/
void LoadL();
/**
* Refreshes backup setting list entries
*/
void RefreshListL();
/**
* Creates backup setting target drive entry
*/
CEntry* CreateTargetDriveEntryLC();
/**
* Checks for multiple backup targets
*/
TBool HasMultipleBackupTargets();
private: // Data
/**
* Reference to file manager engine
* Not own.
*/
CFileManagerEngine& iEngine;
/**
* Content bitmask
*/
TUint32 iContent;
/**
* Scheduling type
*/
TInt iScheduling;
/**
* Scheduled backup weekday
*/
TInt iDay;
/**
* Scheduled backup time from 00:00
*/
TTime iTime;
/**
* Backup target drive
*/
TInt iTargetDrive;
/**
* Backup setting list items
*/
RPointerArray< CEntry > iList;
/**
* Allowed drive match mask
*/
TUint32 iAllowedDriveMatchMask;
/**
* Pointer to CenRep
* Own.
*/
CRepository* iCenRep;
/**
* Feature configuration
*/
TInt iFileManagerFeatures;
};
#endif // C_FILEMANAGERBACKUPSETTINGS_H
// End of File