diff -r 95243422089a -r 491b3ed49290 filemanager/src/filemanager/src/backuprestore/fmbackuprestorehandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/filemanager/src/backuprestore/fmbackuprestorehandler.cpp Tue Aug 31 15:06:05 2010 +0300 @@ -0,0 +1,155 @@ +/* + * 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 backup and restore handler of file manager + */ + +#include "fmbackuprestorehandler.h" +#include "fmbackupsettings.h" +#include "fmrestoresettings.h" +#include "fmoperationservice.h" +#include "fmbackupconfigloader.h" +#include "fmbkupengine.h" +#include "fmoperationbase.h" +#include "fmcommon.h" +#include "fmdlgutils.h" + +FmBackupRestoreHandler::FmBackupRestoreHandler( QObject *parent ) : QObject( parent ), mBackupConfigLoader( 0 ) +{ + mBkupEngine = new FmBkupEngine( this ); + + mCurrentProcess = ProcessNone; + + connect( mBkupEngine, SIGNAL( notifyPreparing( bool ) ), this, SLOT( onNotifyPreparing( bool ) ), Qt::QueuedConnection ); + connect( mBkupEngine, SIGNAL( notifyStart( bool, int) ), this, SLOT( onNotifyStart( bool, int ) ), Qt::QueuedConnection ); + connect( mBkupEngine, SIGNAL( notifyUpdate(int) ), this, SLOT( onNotifyUpdate(int) ), Qt::QueuedConnection ); + connect( mBkupEngine, SIGNAL( notifyFinish(int) ), + this, SLOT( onNotifyFinish(int) ), Qt::DirectConnection ); + connect( mBkupEngine, SIGNAL( notifyMemoryLow(int, int& ) ), + this, SLOT( onNotifyMemoryLow(int, int&) ) ); + connect( mBkupEngine, SIGNAL( notifyBackupFilesExist( bool& )), this, SLOT( onNotifyBackupFilesExist( bool& ))); + +} +FmBackupRestoreHandler::~FmBackupRestoreHandler() +{ + delete mBkupEngine; + delete mBackupConfigLoader; +} + +FmBkupEngine *FmBackupRestoreHandler::bkupEngine() +{ + return mBkupEngine; +} + +FmBackupConfigLoader *FmBackupRestoreHandler::backupConfigLoader() +{ + if( !mBackupConfigLoader ) { + mBackupConfigLoader = new FmBackupConfigLoader(); + } + return mBackupConfigLoader; +} + +int FmBackupRestoreHandler::error() +{ + return mBkupEngine->error(); +} + +bool FmBackupRestoreHandler::startBackup( FmOperationBackup *operationBackup ) +{ + Q_UNUSED( operationBackup ); + mCurrentProcess = ProcessBackup; + bool ret = mBkupEngine->startBackup( backupConfigLoader()->driversAndOperationList(), + backupConfigLoader()->backupCategoryList(), + operationBackup->targetDrive(), // targetDrive is stored in FmOperationBackup + operationBackup->content() ); // content is stored in FmOperationBackup + + if( !ret ) { + mCurrentProcess = ProcessNone; + } + return ret; +} +void FmBackupRestoreHandler::cancelBackup() +{ + mBkupEngine->cancelBackup(); +} +bool FmBackupRestoreHandler::startRestore( FmOperationRestore *operationRestore ) +{ + mCurrentProcess = ProcessRestore; + mBkupEngine->RestoreSettingsL()->SetSelection( operationRestore->selection() ); + bool ret = mBkupEngine->startRestore( backupConfigLoader()->driversAndOperationList() ); + if( !ret ) { + mCurrentProcess = ProcessNone; + } + return ret; +} + +int FmBackupRestoreHandler::deleteBackup( quint64 selection ) +{ + mBkupEngine->RestoreSettingsL()->SetSelection( selection ); + mBkupEngine->deleteBackup( backupConfigLoader()->driversAndOperationList() ); + return FmErrNone; +} + +void FmBackupRestoreHandler::onNotifyMemoryLow( int memoryValue, int &userError ) +{ + userError = FmErrNone; + if( memoryValue < FmEstimateLowerLimit ) { + userError = FmErrDiskFull; + } else if( memoryValue < FmEstimateUpperLimit ) { + if ( !FmDlgUtils::question( "memory low, continue?" ) ){ + userError = FmErrCancel; + } + } +} +void FmBackupRestoreHandler::onNotifyBackupFilesExist( bool &isContinue ) + { + if ( FmDlgUtils::question( "some backup files exist, continue?" ) ) + { + isContinue = true; + } + else + { + isContinue = false; + } + } + + +void FmBackupRestoreHandler::onNotifyPreparing( bool cancelable ) +{ + emit notifyPreparing( cancelable ); +} +void FmBackupRestoreHandler::onNotifyStart( bool cancelable, int maxSteps ) +{ + emit notifyStart( cancelable, maxSteps ); +} +void FmBackupRestoreHandler::onNotifyUpdate( int currentStep ) +{ + emit notifyProgress( currentStep ); +} +void FmBackupRestoreHandler::onNotifyFinish( int err ) +{ + if( err == FmErrNone ) { + emit notifyFinish(); + } else if( err == FmErrCancel ){ + emit notifyCanceled(); + } else { + emit notifyError( err, QString("") ); + } +} + +void FmBackupRestoreHandler::getBackupDriveList( QStringList &driveList ) +{ + mBkupEngine->getBackupDriveList( driveList ); +}