--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/src/fmbackupsettings.cpp Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,389 @@
+/*
+ * 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 source file of the backup settings of file manager
+ */
+
+#include "fmbackupsettings.h"
+#include "fmbkupengine.h"
+#include "fmcommon.h"
+
+#include <QString>
+#include <QStringList>
+#include <QTime>
+#include <QSettings>
+
+#include <hbglobal.h>
+
+FmBackupSettings::FmBackupSettings( FmBkupEngine *aFmBkupEngine ) : mBkupEngine( aFmBkupEngine )
+{
+
+}
+
+FmBackupSettings::~FmBackupSettings( void )
+{
+ resetAndDestoryBackupEntry();
+}
+
+void FmBackupSettings::setContent( const quint32 aContent )
+{
+ mContent = aContent;
+ save();
+}
+
+void FmBackupSettings::setScheduling( const TFileManagerBackupSchedule aScheduling )
+{
+ mScheduling = aScheduling;
+ save();
+}
+
+void FmBackupSettings::setWeekday( const TFileManagerBackupWeekday weekday )
+{
+ mWeekday = weekday;
+ save();
+}
+
+void FmBackupSettings::setTime( const QTime &aTime )
+{
+ mTime = aTime;
+ save();
+}
+
+void FmBackupSettings::setTargetDrive( const QString &aDrive )
+{
+ mTargetDrive = aDrive;
+ save();
+}
+
+quint32 FmBackupSettings::content() const
+{
+ return mContent;
+}
+
+FmBackupSettings::TFileManagerBackupSchedule FmBackupSettings::scheduling() const
+{
+ return mScheduling;
+}
+
+FmBackupSettings::TFileManagerBackupWeekday FmBackupSettings::weekday() const
+{
+ return mWeekday;
+}
+
+const QTime& FmBackupSettings::time() const
+{
+ return mTime;
+}
+
+QString FmBackupSettings::targetDrive() const
+{
+ return mTargetDrive;
+}
+
+QString FmBackupSettings::availableTargetDrive() const
+{
+ QString targetDrive;
+ QStringList driveList;
+ mBkupEngine->getBackupDriveList( driveList );
+ if( !driveList.isEmpty() ) {
+ if( driveList.contains( mTargetDrive ) ) {
+ targetDrive = mTargetDrive;
+ } else {
+ targetDrive = driveList.first();
+ }
+ }
+ return targetDrive;
+}
+
+int FmBackupSettings::contentsSelected() const
+{
+ int ret( 0 );
+ // Count selected only
+ quint32 mask( mContent );
+ while ( mask ){
+ if ( mask & 1 ){
+ ++ret;
+ }
+ mask >>= 1;
+ }
+ return ret;
+}
+
+FmBackupEntry* FmBackupSettings::CreateEntry( const QString &title, const QString &tips, const FmBackupEntry::TSettingType type )
+{
+ FmBackupEntry *entry = new FmBackupEntry( title, tips, type );
+ return entry;
+}
+
+FmBackupEntry* FmBackupSettings::createContentsEntry()
+{
+ QString title;
+ QString tips;
+
+ title = hbTrId( "Backup Contents" );
+
+ int selected( contentsSelected() );
+ if ( !( mContent & EFileManagerBackupContentAll ) && selected > 1 ){
+ // create text as " 5 selected"
+ tips = QString( QString::number(selected) + " selected" );
+ }
+ else
+ {
+ // create single content name
+ tips = contentToString( mContent );
+ }
+
+ return CreateEntry( title, tips, FmBackupEntry::EContents );
+}
+
+FmBackupEntry* FmBackupSettings::createSchedulingEntry()
+{
+ QString title;
+ QString tips;
+
+ title = hbTrId( "Backup scheduling" );
+ tips = schedulingToString( mScheduling );
+
+ return CreateEntry( title, tips, FmBackupEntry::EScheduling );
+}
+
+FmBackupEntry* FmBackupSettings::createWeekdayEntry()
+{
+ QString title;
+ QString tips;
+
+ title = hbTrId( "Weekday" );
+ tips = weekdayToString( mWeekday );
+
+ return CreateEntry( title, tips, FmBackupEntry::EWeekday );
+}
+
+FmBackupEntry* FmBackupSettings::createTimeEntry()
+{
+ QString title;
+ QString tips;
+
+ title = hbTrId( "Time" );
+ tips = mTime.toString( "hh:mm" );
+
+ return CreateEntry( title, tips, FmBackupEntry::ETime );
+}
+
+FmBackupEntry* FmBackupSettings::createTargetDriveEntry()
+{
+ QString title;
+ QString tips;
+
+ title = hbTrId( "Backup destination" );
+ tips = targetDriveToString( mTargetDrive );
+
+ return CreateEntry( title, tips, FmBackupEntry::ETarget );
+}
+
+FmBackupEntry* FmBackupSettings::createBackupDateEntry()
+{
+ QString tips;
+ if( mDate.isNull() )
+ {
+ tips = hbTrId( "No previous backups created");
+ }
+ else
+ {
+ tips = hbTrId( "Backup Created " ) + mDate.toString( "dd.MM.yyyy" );
+ }
+ return CreateEntry( QString(""), tips, FmBackupEntry::EBackupdate);
+}
+QString FmBackupSettings::contentToString( const quint32 content )
+{
+ QString ret( hbTrId( "All" ) );
+
+ if ( content & EFileManagerBackupContentAll ){
+ ret = hbTrId( "All" );
+ }
+ else if ( content & EFileManagerBackupContentSettings ){
+ ret = hbTrId( "Settings" );
+ }
+ else if ( content & EFileManagerBackupContentMessages ){
+ ret = hbTrId( "Messages" );
+ }
+ else if ( content & EFileManagerBackupContentContacts ){
+ ret = hbTrId( "Contacts" );
+ }
+ else if ( content & EFileManagerBackupContentCalendar ){
+ ret = hbTrId( "Calendar" );
+ }
+ else if ( content & EFileManagerBackupContentBookmarks ){
+ ret = hbTrId( "Bookmarks" );
+ }
+ else if ( content & EFileManagerBackupContentUserFiles ){
+ ret = hbTrId( "Files" );
+ }
+ return ret;
+}
+
+QString FmBackupSettings::weekdayToString( const TFileManagerBackupWeekday weekday )
+{
+ QString ret = "";
+ switch (weekday)
+ {
+ case EFileManagerBackupWeekdayMonday:
+ ret = hbTrId( "Monday" );
+ break;
+ case EFileManagerBackupWeekdayTuesday:
+ ret = hbTrId( "Tuesday" );
+ break;
+ case EFileManagerBackupWeekdayWednesday:
+ ret = hbTrId( "Wednesday" );
+ break;
+ case EFileManagerBackupWeekdayThursday:
+ ret = hbTrId( "Thursday" );
+ break;
+ case EFileManagerBackupWeekdayFriday:
+ ret = hbTrId( "Friday" );
+ break;
+ case EFileManagerBackupWeekdaySaturday:
+ ret = hbTrId( "Saturday" );
+ break;
+ case EFileManagerBackupWeekdaySunday:
+ ret = hbTrId( "Sunday" );
+ break;
+ }
+ return ret;
+}
+
+
+QString FmBackupSettings::schedulingToString( const TFileManagerBackupSchedule scheduling )
+{
+ QString ret = "";
+ switch (scheduling)
+ {
+ case EFileManagerBackupScheduleNever:
+ ret = hbTrId( "Never" );
+ break;
+ case EFileManagerBackupScheduleDaily:
+ ret = hbTrId ("Daily" );
+ break;
+ case EFileManagerBackupScheduleWeekly:
+ ret = hbTrId( "Weekly" );
+ break;
+ }
+ return ret;
+}
+
+QString FmBackupSettings::targetDriveToString( const QString &targetDrive )
+{
+ //TODO: Get Volume Name and append to return value
+ return targetDrive;
+}
+
+QList< FmBackupEntry* > FmBackupSettings::backupEntryList()
+{
+ return mBackupEntryList;
+}
+
+void FmBackupSettings::refreshList()
+{
+ resetAndDestoryBackupEntry();
+ FmBackupEntry* entry = 0;
+
+ entry = createContentsEntry();
+ mBackupEntryList.push_back( entry );
+
+ entry = createSchedulingEntry();
+ mBackupEntryList.push_back( entry );
+
+ if ( mScheduling == EFileManagerBackupScheduleWeekly )
+ {
+ entry = createWeekdayEntry();
+ mBackupEntryList.push_back( entry );
+ }
+
+ if ( mScheduling == EFileManagerBackupScheduleWeekly ||
+ mScheduling == EFileManagerBackupScheduleDaily )
+ {
+ entry = createTimeEntry();
+ mBackupEntryList.push_back( entry );
+ }
+
+ QStringList driveList;
+ mBkupEngine->getBackupDriveList( driveList );
+
+ if( driveList.count() > 1 ) {
+ entry = createTargetDriveEntry();
+ mBackupEntryList.push_back( entry );
+ }
+
+ entry = createBackupDateEntry();
+ mBackupEntryList.push_back( entry );
+}
+
+void FmBackupSettings::resetAndDestoryBackupEntry()
+{
+ for( QList< FmBackupEntry* >::iterator it = mBackupEntryList.begin();
+ it!= mBackupEntryList.end(); ++it ){
+ delete *it;
+ }
+ mBackupEntryList.clear();
+}
+
+
+
+// load and save
+
+void FmBackupSettings::load()
+{
+
+ QStringList driveList;
+ mBkupEngine->getBackupDriveList( driveList );
+ QString defaultDrive( driveList.first() );
+
+ QDate date;
+ QSettings settings("Nokia", "FileManager");
+
+ settings.beginGroup("BackupConfigure");
+
+ mContent = (settings.value("content", 1).toUInt()); // All for default value
+ mScheduling = (TFileManagerBackupSchedule)(settings.value("scheduling", EFileManagerBackupScheduleNever ).toInt()); // Never schedule for default value
+ mWeekday = (TFileManagerBackupWeekday)(settings.value("weekday", EFileManagerBackupWeekdayMonday ).toInt()); // monday for default value
+ mTime = (settings.value("time", QTime::currentTime() ).toTime()); // empty for default
+ mTargetDrive = (settings.value("targetDrive", defaultDrive ) ).toString(); // C for default
+ mDate = (settings.value("backupDate", date)).toDate();
+ settings.endGroup();
+ refreshList();
+}
+
+
+void FmBackupSettings::save()
+{
+
+ QSettings settings( "Nokia", "FileManager" );
+ settings.beginGroup( "BackupConfigure" );
+
+ settings.setValue( "content", mContent );
+ settings.setValue( "scheduling", mScheduling );
+ settings.setValue( "weekday", mWeekday );
+ settings.setValue( "time", mTime.toString() );
+ settings.setValue( "targetDrive", mTargetDrive );
+ settings.setValue( "backupDate", mDate.toString( Qt::ISODate ) );
+ settings.endGroup();
+
+ refreshList();
+}
+
+void FmBackupSettings::updateBackupDate()
+{
+ mDate.setDate( QDate::currentDate().year(), QDate::currentDate().month(), QDate::currentDate().day() );
+ save();
+}