diff -r 95243422089a -r 491b3ed49290 filemanager/src/filemanager/src/backuprestore/fmbackupconfigloader.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/filemanager/src/backuprestore/fmbackupconfigloader.cpp Tue Aug 31 15:06:05 2010 +0300 @@ -0,0 +1,261 @@ +/* + * 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 back up config loader of file manager + */ + +#include "fmbackupconfigloader.h" +#include "fmbkupengine.h" +#include "fmbkupcommon.h" +#include "fmutils.h" + +#include +#include +#include + +FmBackupConfigLoader::FmBackupConfigLoader(void) +{ + +} + +FmBackupConfigLoader::~FmBackupConfigLoader(void) +{ + /* + if( mProgressDialog ) + delete mProgressDialog; + */ +} + +void FmBackupConfigLoader::loadData() +{ + if( mDrivesAndOperationList.count() != 0 || mBackupCategoryList.count() != 0 ) { + return; + } + + QString path = QCoreApplication::applicationDirPath (); + path = FmUtils::getBurConfigPath( path ); + QFile file( path ); + if( !file.exists() ) { + Q_ASSERT( false ); + return; + } + if( !file.open( QIODevice::ReadOnly ) ) { + Q_ASSERT( false ); + return; + } + QByteArray data = file.readAll(); + xml.clear(); + xml.addData(data); + file.close(); + parseXml(); + +// mBackupSettings->load(); +} + +QList FmBackupConfigLoader::driversAndOperationList() +{ + loadData(); + return mDrivesAndOperationList; +} +QList FmBackupConfigLoader::backupCategoryList() +{ + loadData(); + return mBackupCategoryList; +} + +void FmBackupConfigLoader::parseXml() +{ + while(!xml.atEnd()){ + xml.readNext(); + if( xml.isStartElement() ){ + currentTag = xml.name().toString(); + if( xml.name() == "drivesAndOperation" ){ + parseDrivesAndOperation(); + } + else if( xml.name() == "backupCategory" ){ + parseBackupCategory(); + } + } + } + if (xml.error() && xml.error() != QXmlStreamReader::PrematureEndOfDocumentError) { + qDebug("XML ERROR: %d :%s"), xml.lineNumber() ,xml.errorString().toAscii().data(); + } +} + + +void FmBackupConfigLoader::parseDrivesAndOperation() +{ + FmBkupDrivesAndOperation* driversAndOperation = + new FmBkupDrivesAndOperation; + + while( !( xml.isEndElement() && xml.name() == "drivesAndOperation" ) ) + { + xml.readNext(); + currentTag = xml.name().toString(); + if( xml.name() == "drive" ) + { + driveString = xml.readElementText(); + } + else if( xml.name() == "type" ) + { + typeString = xml.readElementText(); + } + } + + bool ok = false; + bool everyParamOk = true; + + unsigned int driveInt = + ConfigStringConverter::drivesAndOperations_DriveToUInt( &ok, driveString ); + if( !ok ){ + everyParamOk = false; + } + + unsigned int typeInt = + ConfigStringConverter::drivesAndOperations_TypeToUInt( &ok, typeString ); + if( !ok ){ + everyParamOk = false; + } + + if( everyParamOk ){ + driversAndOperation->setDrvCategories( driveInt ); + driversAndOperation->setOwnerDataType( typeInt ); + mDrivesAndOperationList.append(driversAndOperation); + } + else{ + delete driversAndOperation; + } + + QString debugString; + debugString = debugString + "drive = " + driveString; + debugString = debugString + "\n type = " + typeString; + //QMessageBox::notifyation( NULL, "drive&Type = ", debugString, QMessageBox::Ok, QMessageBox::NoButton ); + + driveString.clear(); + typeString.clear(); +} + +void FmBackupConfigLoader::parseBackupCategory() +{ + FmBkupBackupCategory* backupCategory = + new FmBkupBackupCategory(); + + while( !( xml.isEndElement() && xml.name() == "backupCategory" ) ) + { + xml.readNext(); + currentTag = xml.name().toString(); + if( xml.name() == "category" ) + { + categoryString = xml.readElementText(); + } + else if( xml.name() == "archive_name" ) + { + archive_nameString = xml.readElementText(); + } + else if( xml.name() == "special_flags" ) + { + special_flagsString = xml.readElementText(); + } + else if( xml.name() == "exclude_special_flags" ) + { + exclude_special_flagsString = xml.readElementText(); + } + else if( xml.name() == "uids" ){ + QString tempString = xml.readElementText(); + if( tempString.length()>0 ){ + /// debug----------- + uidsString += '|'; + uidsString += tempString; + /// debug----------- + + bool ok = false; + unsigned int value = tempString.toUInt( &ok, 16); + if( ok ){ + backupCategory->addUids( value ); + } + } + } + else if( xml.name() == "exclude_uids" ){ + QString tempString = xml.readElementText(); + if( tempString.length()>0 ){ + /// debug----------- + exclude_uidsString += '|'; + exclude_uidsString += tempString; + /// debug----------- + + bool ok = false; + unsigned int value = tempString.toUInt( &ok, 16); + if( ok ){ + backupCategory->addExclude_uids( value ); + } + } + } + } + + + bool ok = false; + bool everyParamOk = true; + + unsigned int categoryInt = + ConfigStringConverter::backupCategory_CategoryToUInt( &ok, categoryString ); + if( !ok ){ + everyParamOk = false; + } + + if( archive_nameString.length() <= 0 ){ + everyParamOk = false; + } + + unsigned int special_flagsInt = + ConfigStringConverter::backupCategory_Special_flagsToUInt( &ok, special_flagsString ); + if( !ok ){ + everyParamOk = false; + } + + unsigned int exclude_special_flagsInt = + ConfigStringConverter::backupCategory_Special_flagsToUInt( &ok, exclude_special_flagsString ); + if( !ok ){ + everyParamOk = false; + } + + if( everyParamOk ){ + backupCategory->setCategory( categoryInt ); + backupCategory->setArchive_name( archive_nameString ); + backupCategory->setSpecial_flags( special_flagsInt ); + backupCategory->setExclude_special_flags( exclude_special_flagsInt ); + mBackupCategoryList.append( backupCategory ); + } + else{ + delete backupCategory; + } + + QString debugString; + debugString = debugString + "category = " + categoryString; + debugString = debugString + "\n archive_name = " + archive_nameString; + debugString = debugString + "\n special_flags = " + special_flagsString; + debugString = debugString + "\n exclude_special_flags = " + special_flagsString; + debugString = debugString + "\n exclude_special_flags = " + exclude_special_flagsString; + debugString = debugString + "\n uids = " + uidsString; + debugString = debugString + "\n exclude_uids = " + exclude_uidsString; + //QMessageBox::notifyation( NULL, "category = ", debugString, QMessageBox::Ok, QMessageBox::NoButton ); + + categoryString.clear(); + archive_nameString.clear(); + special_flagsString.clear(); + exclude_special_flagsString.clear(); + uidsString.clear(); + exclude_uidsString.clear(); +} +