diff -r 95243422089a -r 491b3ed49290 filemanager/src/fmbkupenginewrapper/inc/fmbackupsettings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/fmbkupenginewrapper/inc/fmbackupsettings.h Tue Aug 31 15:06:05 2010 +0300 @@ -0,0 +1,358 @@ +/* + * 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: + * The header file of the backup seetings of file manager + */ +#ifndef FMBACKUPSETTINGS_H +#define FMBACKUPSETTINGS_H + +#include "fmbkupengine_global.h" + +#include +#include +#include + +#include + +class FmBkupEngine; + +// CLASS DECLARATION +/** + * This class is used for storing backup entry which used in backup view + * Each row in backup view is a single entry + * + */ +class FmBackupEntry +{ +public: + /** Backup setting type */ + enum TSettingType + { + ENone = 0, + EContents, + EScheduling, + EWeekday, + ETime, + ETarget, + EBackupdate + }; + +public: + FmBackupEntry( const QString& title, const QString& tips, const TSettingType type ) : + mTitle( title ), mTips( tips ), mType( type ) + { + } + ~FmBackupEntry( void ) + { + } + + FmBackupEntry( const FmBackupEntry &other ) + { + mTitle = other.mTitle; + mTips = other.mTips; + mType = other.mType; + } + + FmBackupEntry &operator =( const FmBackupEntry &other ) + { + if( this == &other ){ + return *this; + } + + mTitle = other.mTitle; + mTips = other.mTips; + mType = other.mType; + return *this; + } + + QString title() + { + return mTitle; + } + + QString tips() + { + return mTips; + } + + FmBackupEntry::TSettingType type() + { + return mType; + } + + +private: + /** + * first label for item in backup view + */ + QString mTitle; + + /** + * second label for item in backup view + */ + QString mTips; + + /** + * type for item in backup view + */ + TSettingType mType; +}; + +// CLASS DECLARATION +/** + * This class is used for storing backup settings + * + */ +class FMBKUPENGINE_EXPORT FmBackupSettings +{ +public: + enum TFileManagerBackupContentMask + { + EFileManagerBackupContentAll = 0x1, + EFileManagerBackupContentSettings = 0x2, + EFileManagerBackupContentMessages = 0x4, + EFileManagerBackupContentContacts = 0x8, + EFileManagerBackupContentCalendar = 0x10, + EFileManagerBackupContentBookmarks = 0x20, + EFileManagerBackupContentUserFiles = 0x40, + EFileManagerBackupContentFirst = 0x2, + EFileManagerBackupContentLast = 0x40 + }; + + /** Contains the possible values of KFileManagerBackupScheduling key. */ + enum TFileManagerBackupSchedule + { + EFileManagerBackupScheduleNever = 0, + EFileManagerBackupScheduleDaily, + EFileManagerBackupScheduleWeekly + }; + + /** Contains the possible values of KFileManagerBackupScheduling key. */ + enum TFileManagerBackupWeekday + { + EFileManagerBackupWeekdayMonday = 0, + EFileManagerBackupWeekdayTuesday, + EFileManagerBackupWeekdayWednesday, + EFileManagerBackupWeekdayThursday, + EFileManagerBackupWeekdayFriday, + EFileManagerBackupWeekdaySaturday, + EFileManagerBackupWeekdaySunday, + }; + +public: + explicit FmBackupSettings( FmBkupEngine *aFmBkupEngine ); + ~FmBackupSettings( void ); + + + /** + * Sets backup contents + * @param aContent Content bitmask + */ + void setContent( const quint32 aContent ); + + /** + * Sets backup scheduling + * @param aScheduling Scheduling type + */ + void setScheduling( const TFileManagerBackupSchedule aScheduling ); + + /** + * Sets backup weekday + * @param weekday Backup weekday + */ + void setWeekday( const TFileManagerBackupWeekday weekday ); + + /** + * Sets backup time + * @param aTime Time from 00:00 + */ + void setTime( const QTime& aTime ); + + /** + * Sets backup target drive + * @param aDrive Target drive (See TDriveNumber) + */ + void setTargetDrive( const QString& aDrive ); + + /** + * Gets backup contents + * @return Content bitmask + * @see TFileManagerBackupContentMask + */ + quint32 content() const; + + /** + * Gets backup scheduling + * @return Scheduling type + */ + FmBackupSettings::TFileManagerBackupSchedule scheduling() const; + + /** + * Gets backup weekday + * @return Backup weekday + */ + FmBackupSettings::TFileManagerBackupWeekday weekday() const; + + /** + * Gets backup time + * @return Backup time + */ + const QTime& time() const; + + /** + * Gets backup target drive + * @return Backup time + */ + QString targetDrive() const; + + /** + * Gets available backup target drive + * if targetDrive exist, return targetDrive + * otherwise return other first available backup drive + * @return Available backup target drive, empty QString for null + */ + QString availableTargetDrive() const; + + /** + * Loads saved backup settings + */ + void load(); + + /** + * Saves backup settings + */ + void save(); + + /** + * get backup entry list + * @return backup entry list + */ + QList< FmBackupEntry* > backupEntryList(); + + /** + * Gets String from single content bit + * @param aContent content bit + * @return Textid + */ + static QString contentToString( const quint32 content ); + + + /** + * Gets String from weekday + * @param weekday + * @return string + */ + static QString weekdayToString( const TFileManagerBackupWeekday weekday ); + + /** + * Gets String from scheduling + * @param scheduling + * @return string + */ + QString schedulingToString( const TFileManagerBackupSchedule scheduling ); + /** + * Gets String from targetDrive + * @param targetDrive drive name string + * @return string + */ + QString targetDriveToString( const QString& targetDrive ); + + /** + * Updates the backup date + */ + void updateBackupDate(); +private: + /** + * Gets the count of contents selected + */ + int contentsSelected() const; + + FmBackupEntry* CreateEntry( const QString& title, const QString& tips, const FmBackupEntry::TSettingType type ); + + /////////////////////////////////////////////////////////////////////// + /** + * Creates backup setting entry from all contents bit + */ + FmBackupEntry* createContentsEntry(); + + /** + * Creates backup setting entry from scheduling + */ + FmBackupEntry* createSchedulingEntry(); + + /** + * Creates backup setting entry from weekday + */ + FmBackupEntry* createWeekdayEntry(); + + /** + * Creates backup setting entry from time + */ + FmBackupEntry* createTimeEntry(); + + /** + * Creates backup setting entry from time + */ + FmBackupEntry* createTargetDriveEntry(); + + /** + * Creates backup date entry + */ + FmBackupEntry* createBackupDateEntry(); + + void refreshList(); + void resetAndDestoryBackupEntry(); +private: + /** + * Content bitmask + * @see TFileManagerBackupContentMask + */ + quint32 mContent; + + /** + * Scheduling type + */ + TFileManagerBackupSchedule mScheduling; + + /** + * Scheduled backup weekday + */ + TFileManagerBackupWeekday mWeekday; + + /** + * Scheduled backup time from 00:00 + */ + QTime mTime; + + /** + * Backup target drive + */ + QString mTargetDrive; + + /** + * Backup date + */ + QDate mDate; + + /** + * Backup setting list items + */ + QList< FmBackupEntry* > mBackupEntryList; + + + FmBkupEngine *mBkupEngine; +}; + +#endif //FMBACKUPSETTINGS_H