diff -r 000000000000 -r 6a9f87576119 filemanager/Engine/inc/CFileManagerBackupSettings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/Engine/inc/CFileManagerBackupSettings.h Mon Jan 18 20:09:41 2010 +0200 @@ -0,0 +1,320 @@ +/* +* 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 +#include + + +// 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