diff -r 491b3ed49290 -r 65326cf895ed filemanager/src/filemanager/src/backuprestore/fmbackupwidget.cpp --- a/filemanager/src/filemanager/src/backuprestore/fmbackupwidget.cpp Tue Aug 31 15:06:05 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,351 +0,0 @@ -/* - * 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 back up widget of file manager - */ - -#include "fmbackupwidget.h" -#include "fmbackupsettings.h" -#include "fmdlgutils.h" -#include "fmviewmanager.h" -#include "fmoperationservice.h" -#include "fmbkupengine.h" -#include "fmbackuprestorehandler.h" -#include "fmutils.h" - - -#include -#include - -#include -#include -#include -#include - - -FmBackupWidget::FmBackupWidget( QGraphicsItem *parent ) -: HbWidget( parent ) -{ - init(); -} - -FmBackupWidget::~FmBackupWidget() -{ - mDataForm->setModel( 0 ); - delete mModel; -} - - -void FmBackupWidget::on_list_activated( const QModelIndex &index ) -{ - // change item data when receive activated signal - HbDataFormModelItem *item = mModel->itemFromIndex(index); - if( item == mContentsItem ){ - emit changeContents(); - } else if( item == mTargetItem ){ - emit changeTargetDrive(); - } else if( item == mSchedulingItem ){ - emit changeScheduling(); - } else if( item == mWeekdayItem ){ - emit changeWeekday(); - } else if( item == mTimeItem ){ - emit changeTime(); - } -} - -void FmBackupWidget::init() -{ - QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout( this ); - vLayout->setOrientation( Qt::Vertical ); - - - mModel = new HbDataFormModel(); - initModel(); - - mDataForm = new HbDataForm( this ); - mDataForm->setModel( mModel ); - vLayout->addItem( mDataForm ); - - connect( mDataForm, SIGNAL( activated( const QModelIndex & ) ), - this, SLOT( on_list_activated( const QModelIndex & ) ) ); - - connect( this, SIGNAL( doModelRefresh() ), - this, SLOT( refreshModel() ), Qt::QueuedConnection ); - - connect( this, SIGNAL(changeContents()), this, SLOT(on_changeContents()), Qt::QueuedConnection); - connect( this, SIGNAL(changeScheduling()), this, SLOT(on_changeScheduling()), Qt::QueuedConnection); - connect( this, SIGNAL(changeWeekday()), this, SLOT(on_changeWeekday()), Qt::QueuedConnection); - connect( this, SIGNAL(changeTime()), this, SLOT(on_changeTime()), Qt::QueuedConnection); - connect( this, SIGNAL(changeTargetDrive()), this, SLOT(on_changeTargetDrive()), Qt::QueuedConnection); - - //mBackupSettings = new FmBackupSettings(); - mBackupSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->BackupSettingsL(); - mBackupSettings->load(); - - emit doModelRefresh(); - -} - -void FmBackupWidget::expandAllGroup() -{ - FM_LOG( QString( "function expandAllGroup start" ) ); - - mDataForm->setModel( 0 ); - mDataForm->setModel( mModel ); - - HbDataFormViewItem *itemScheduling = - (HbDataFormViewItem *)(mDataForm->itemByIndex(mModel->indexFromItem(mSchedulingGroup))); - if( itemScheduling ){ - FM_LOG( QString( "expand itemScheduling start" ) ); - itemScheduling->setExpanded( true ); - FM_LOG( QString( "expand itemScheduling end" ) ); - } - - HbDataFormViewItem *itemGroup = - (HbDataFormViewItem *)(mDataForm->itemByIndex(mModel->indexFromItem(mContentsGroup))); - if( itemGroup ){ - FM_LOG( QString( "expand itemGroup start" ) ); - itemGroup->setExpanded( true ); - FM_LOG( QString( "expand itemGroup end" ) ); - } - FM_LOG( QString( "function expandAllGroup end" ) ); -} - -void FmBackupWidget::initModel() -{ - mContentsGroup = mModel->appendDataFormGroup( - QString( hbTrId( "Contents" ) ), mModel->invisibleRootItem()); - - mContentsItem = mModel->appendDataFormItem( - HbDataFormModelItem::TextItem, QString( "" ), mContentsGroup ); - mContentsItem->setContentWidgetData( QString("readOnly"), QString("true") ); - mContentsItem->setContentWidgetData( QString("objectName"), QString("backupContentItem") ); - - mTargetItem = mModel->appendDataFormItem( - HbDataFormModelItem::TextItem, QString( "" ), mContentsGroup ); - mTargetItem->setContentWidgetData( QString("readOnly"), QString("true") ); - mTargetItem->setContentWidgetData( QString("objectName"), QString("backupTargetItem") ); - - mSchedulingGroup = mModel->appendDataFormGroup( - QString( hbTrId( "Scheduling" ) ), mModel->invisibleRootItem()); - - mSchedulingItem = mModel->appendDataFormItem( - HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup ); - mSchedulingItem->setContentWidgetData( QString("readOnly"), QString("true") ); - mSchedulingItem->setContentWidgetData( QString("objectName"), QString("backupSchedulingItem") ); - - mWeekdayItem = mModel->appendDataFormItem( - HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup ); - mWeekdayItem->setContentWidgetData( QString("readOnly"), QString("true") ); - mWeekdayItem->setContentWidgetData( QString("objectName"), QString("backupWeekdayItem") ); - - mTimeItem = mModel->appendDataFormItem( - HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup ); - mTimeItem->setContentWidgetData( QString("readOnly"), QString("true") ); - mTimeItem->setContentWidgetData( QString("objectName"), QString("backupTimeItem") ); - - mLastBackupDateItem = mModel->appendDataFormItem( - HbDataFormModelItem::TextItem, QString( ( "" )), mModel->invisibleRootItem() ); - mLastBackupDateItem->setContentWidgetData( QString("readOnly"), QString("true") ); - mLastBackupDateItem->setContentWidgetData( QString("objectName"), QString("backupLastBackupDateItem") ); -} - - - -void FmBackupWidget::refreshModel() -{ - mDataForm->setModel( 0 ); - - mBackupSettings->load(); - - int index = 0; - - index = mSchedulingGroup->indexOf( mWeekdayItem ); - if( index >=0 ){ - mSchedulingGroup->removeChild( index ); - mWeekdayItem = 0; - } - - index = mSchedulingGroup->indexOf( mTimeItem ); - if( index >=0 ){ - mSchedulingGroup->removeChild( index ); - mTimeItem = 0; - } - - index = mContentsGroup->indexOf( mTargetItem ); - if( index >=0 ){ - mContentsGroup->removeChild( index ); - mTargetItem = 0; - } - - QList< FmBackupEntry* > backupEntryList = mBackupSettings->backupEntryList(); - - QList< FmBackupEntry* >::iterator it; - - for ( it = backupEntryList.begin(); it != backupEntryList.end(); ++it ){ - - int type = ( *it )->type(); - - QString title = ( *it )->title(); - QString tips = ( *it )->tips(); - - switch ( type ) - { - case FmBackupEntry::EContents: - { - mContentsItem->setLabel(title); - mContentsItem->setContentWidgetData( QString("text"), tips ); - break; - } - case FmBackupEntry::ETarget: - { - mTargetItem = mModel->appendDataFormItem( - HbDataFormModelItem::TextItem, QString( "" ), mContentsGroup ); - mTargetItem->setContentWidgetData( QString("readOnly"), QString("true") ); - mTargetItem->setLabel(title); - mTargetItem->setContentWidgetData( QString("text"), tips ); - break; - } - case FmBackupEntry::EScheduling: - { - mSchedulingItem->setLabel(title); - mSchedulingItem->setContentWidgetData( QString("text"), tips ); - break; - } - case FmBackupEntry::EWeekday: - { - mWeekdayItem = mModel->appendDataFormItem( - HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup ); - mWeekdayItem->setContentWidgetData( QString("readOnly"), QString("true") ); - mWeekdayItem->setLabel(title); - mWeekdayItem->setContentWidgetData( QString("text"), tips ); - break; - } - case FmBackupEntry::ETime: - { - mTimeItem = mModel->appendDataFormItem( - HbDataFormModelItem::TextItem, QString( "" ), mSchedulingGroup ); - mTimeItem->setContentWidgetData( QString("readOnly"), QString("true") ); - mTimeItem->setLabel(title); - mTimeItem->setContentWidgetData( QString("text"), tips ); - break; - } - case FmBackupEntry::EBackupdate: - { - mLastBackupDateItem->setContentWidgetData( QString("text"), tips ); - break; - } - } - } - - mDataForm->setModel( mModel ); - - expandAllGroup(); -} - -void FmBackupWidget::on_changeContents() -{ - - QString title = mContentsItem->label(); - QStringList queryStringList; - quint32 contentMask = FmBackupSettings::EFileManagerBackupContentAll; - while ( contentMask <= FmBackupSettings::EFileManagerBackupContentLast) - { - queryStringList.push_back( mBackupSettings->contentToString( contentMask ) ); - contentMask = contentMask << 1; - } - quint32 select = mBackupSettings->content(); - if( FmDlgUtils::showMultiSettingQuery( title, queryStringList, select, 0 ) ) - { - mBackupSettings->setContent( select ); - emit doModelRefresh(); - } - -} - - -void FmBackupWidget::on_changeScheduling() -{ - QString title = mSchedulingItem->label(); - QStringList queryStringList; - - FmBackupSettings::TFileManagerBackupSchedule schedule = FmBackupSettings::EFileManagerBackupScheduleNever; - while ( schedule <= FmBackupSettings::EFileManagerBackupScheduleWeekly ) - { - queryStringList.push_back( mBackupSettings->schedulingToString( schedule ) ); - schedule = FmBackupSettings::TFileManagerBackupSchedule(((int)schedule)+1); - } - - // adjust index offset against monday. - int selectIndex = mBackupSettings->scheduling() - FmBackupSettings::EFileManagerBackupScheduleNever; - if( FmDlgUtils::showSingleSettingQuery( title, queryStringList, selectIndex ) ) - { - selectIndex += FmBackupSettings::EFileManagerBackupScheduleNever; - mBackupSettings->setScheduling( ( FmBackupSettings::TFileManagerBackupSchedule )selectIndex ); - emit doModelRefresh(); - } -} - -void FmBackupWidget::on_changeWeekday() -{ - QString title = mWeekdayItem->label(); - QStringList queryStringList; - - FmBackupSettings::TFileManagerBackupWeekday weekday = FmBackupSettings::EFileManagerBackupWeekdayMonday; - while ( weekday <= FmBackupSettings::EFileManagerBackupWeekdaySunday ) - { - queryStringList.push_back( mBackupSettings->weekdayToString( weekday ) ); - weekday = FmBackupSettings::TFileManagerBackupWeekday(((int)weekday)+1); - } - - // adjust index offset against monday. - int selectIndex = mBackupSettings->weekday() - FmBackupSettings::EFileManagerBackupWeekdayMonday; - if( FmDlgUtils::showSingleSettingQuery( title, queryStringList, selectIndex ) ) - { - selectIndex += FmBackupSettings::EFileManagerBackupWeekdayMonday; - mBackupSettings->setWeekday( (FmBackupSettings::TFileManagerBackupWeekday)selectIndex ); - emit doModelRefresh(); - } -} - -void FmBackupWidget::on_changeTime() -{ - QString title = mTimeItem->label(); - QTime queryTime = mBackupSettings->time(); - - if( FmDlgUtils::showTimeSettingQuery( title, queryTime ) ) - { - mBackupSettings->setTime( queryTime ); - emit doModelRefresh(); - } -} - - -void FmBackupWidget::on_changeTargetDrive() -{ - QString title = mTargetItem->label(); - QString drive = FmDlgUtils::showBackupDriveQuery( title ); - if( ( !drive.isEmpty() ) && - ( mBackupSettings->targetDrive().compare( drive, Qt::CaseInsensitive ) != 0 ) ) { - mBackupSettings->setTargetDrive( drive ); - emit doModelRefresh(); - } -} - -void FmBackupWidget::updateBackupDate() -{ - mBackupSettings->updateBackupDate(); - emit doModelRefresh(); -}