diff -r 95243422089a -r 491b3ed49290 filemanager/src/filemanager/src/backuprestore/fmrestorewidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/filemanager/src/backuprestore/fmrestorewidget.cpp Tue Aug 31 15:06:05 2010 +0300 @@ -0,0 +1,160 @@ +/* + * 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 restore widget of file manager + */ +#include "fmrestorewidget.h" +#include "fmrestoresettings.h" +#include "fmbackupsettings.h" +#include "fmrestoreviewitem.h" +#include "fmoperationservice.h" +#include "fmviewmanager.h" + +#include "fmbackupconfigloader.h" +#include "fmbkupengine.h" +#include "fmbackuprestorehandler.h" + +#include +#include +#include + +#include + + + +FmRestoreWigdet::FmRestoreWigdet( QGraphicsItem *parent ) +: HbWidget( parent ) +{ + init(); +} + +FmRestoreWigdet::~FmRestoreWigdet() +{ +} + +QList FmRestoreWigdet::selectionIndexes() +{ + QList selectionList; + + for ( int i=0; irowCount(); i++ ) { + FmRestoreViewItem *item = static_cast( + mListView->itemByIndex( mModel->index( i ) ) ); + if( item && item->getCheckBoxState() ) { + selectionList.push_back( i ); + } + } + + return selectionList; +} + +void FmRestoreWigdet::init() +{ + QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout( this ); + vLayout->setOrientation( Qt::Vertical ); + + mListView = new HbListView( this ); + connect( mListView, SIGNAL( activated( const QModelIndex & ) ), + this, SLOT( on_list_activated( const QModelIndex & ) ) ); + + mListView->setSelectionMode( HbAbstractItemView::MultiSelection ); + + vLayout->addItem( mListView ); + + mModel = new QStringListModel(); + mListView->setModel( mModel ); + mRestoreSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->RestoreSettingsL(); + mBackupConfigLoader = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->backupConfigLoader(); + + // load backup settings to refresh default target drive + FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->BackupSettingsL()->load(); + mRestoreSettings->load( mBackupConfigLoader->driversAndOperationList() ); + + int index = 0; + + QList< FmRestoreEntry* > retoreEntryList = mRestoreSettings->restoreEntryList(); + mModel->insertRows( 0, retoreEntryList.count() ); + + for ( QList< FmRestoreEntry* >::iterator it = retoreEntryList.begin(); + it != retoreEntryList.end(); ++it ){ + QString string = ( *it )->text(); + QDateTime datetime = ( *it )->restoreInfo().dateTime(); + string.append( '\t' ); + string.append( datetime.toString( "hh:mm ap dd/MM/yyyy") ); + QString drive = ( *it )->restoreInfo().drive(); + string.append( '\t' ); + string.append( drive ); + QVariant variant( string ); + + mModel->setData( mModel->index( index ), variant, Qt::DisplayRole ); + + ++index; + } + + mListView->setItemPrototype( new FmRestoreViewItem(this) ); +} + +void FmRestoreWigdet::on_list_activated( const QModelIndex &index ) +{ + FmRestoreViewItem *restoreViewItem = static_cast< FmRestoreViewItem* > + ( mListView->itemByIndex( index ) ); + + restoreViewItem->setCheckBoxState(); +} + +int FmRestoreWigdet::backupDataCount() +{ + return mModel->rowCount(); +} + +void FmRestoreWigdet::refresh() +{ + mListView->setModel( 0 ); + if( !mModel ) { + mModel = new QStringListModel(); + } + mModel->removeRows( 0, mModel->rowCount() ); + + mRestoreSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->RestoreSettingsL(); + mBackupConfigLoader = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->backupConfigLoader(); + mRestoreSettings->load( mBackupConfigLoader->driversAndOperationList() ); + + int index = 0; + QList< FmRestoreEntry* > retoreEntryList = mRestoreSettings->restoreEntryList(); + mModel->insertRows( 0, retoreEntryList.count() ); + for ( QList< FmRestoreEntry* >::iterator it = retoreEntryList.begin(); + it != retoreEntryList.end(); ++it ){ + QString string = ( *it )->text(); + QDateTime datetime = ( *it )->restoreInfo().dateTime(); + QString drive = ( *it )->restoreInfo().drive(); + string.append( '\t' ); + string.append( datetime.toString( "hh:mm ap dd/MM/yyyy") ); + string.append( '\t' ); + string.append( drive ); + QVariant variant( string ); + mModel->setData( mModel->index( index ), variant, Qt::DisplayRole ); + ++index; + } + mListView->setModel( mModel ); + mListView->setItemPrototype( new FmRestoreViewItem( this ) ); + + for (int i = 0; i < mModel->rowCount(); ++i) { + QModelIndex index = mModel->index(i); + FmRestoreViewItem* restoreViewItem = static_cast< FmRestoreViewItem* > + (mListView->itemByIndex(index)); + connect(restoreViewItem, SIGNAL(stateChanged(int)), this, SIGNAL(stateChanged(int))); + } + emit stateChanged(0); + +}